【クラウドネイティブ】Minio on k8s 解説と実践操作

【クラウドネイティブ】Minio on k8s 解説と実践操作

1. 概要

MinIO は、GNU Affero General Public License v3.0 に基づいてリリースされた高性能オブジェクト ストレージです。 Amazon S3 クラウド ストレージ サービス API と互換性があります。 MinIO を使用して、機械学習、分析、アプリケーション データ ワークロード向けの高性能インフラストラクチャを構築します。

公式ドキュメント: https://docs.min.io/ 中国語ドキュメント: http://docs.minio.org.cn/docs/ GitHub アドレス: https://github.com/minio/minio/

2. オーケストレーションとデプロイメントを開始する

minio にはチャート パッケージがあるため、既存のチャート パッケージに基づいて変更します。

1) チャートパッケージをダウンロードする

 helmリポジトリbitnamiを追加しますhttps://charts.bitnami.com/bitnami
helm pull bitnami / minio --バージョン 11.10.16
tar - xf minio - 11.10 .16 .tgz

2) イメージを構築する

ここではイメージを再構築せず、リモート パッケージをローカル harbor リポジトリにプッシュするだけです。イメージの構築方法がわからない場合は、メッセージを残すか、プライベートメッセージを送信してください。

ドッカープル docker .io / bitnami / minio : 2022.11 .11 - debian - 11 - r0
docker タグ docker .io / bitnami / minio : 2022.11.11 - debian - 11 - r0 ​​myharbor .com / bigdata / minio : 2022.11.11 - debian - 11 - r0
docker push myharbor .com / bigdata / minio : 2022.11 .11 - debian - 11 - r0

docker pull docker .io / bitnami / minio -クライアント: 2022.11.7 - debian - 11 - r0
docker タグ docker .io / bitnami / minio -クライアント: 2022.11.7 - debian - 11 - r0 ​​myharbor .com / bigdata / minio -クライアント: 2022.11.7 - debian - 11 - r0
docker push myharbor .com / bigdata / minio -クライアント: 2022.11.7 - debian - 11 - r0

3) YAMLレイアウトを変更する

  • minio/値.yaml
画像
レジストリ: myharbor.com
リポジトリ: bigdata / minio
タグ: 2022.11.11 - debian - 11 - r0

クライアントイメージ:
レジストリ: myharbor.com
リポジトリ: bigdata / minio -クライアント
タグ: 2022.11.7 - debian - 11 - r0

# `スタンドアロン`または`分散`
モード:分散

# ログインアカウント、パスワード
認証:
ルートユーザー:管理者
ルートパスワード: "admin12345"

ステートフルセット:
## @param statefulset .replicaCountゾーンあたりのポッドの数( MinIO & reg ;分散モードのみ) 。偶数かつ ` >= 4 `ある必要があります
##
レプリカ数: 4

サービス
## @param service .type MinIO & reg ;サービスタイプ
##
タイプ: NodePort
ノードポート:
API : "31900"
コンソール: "31901"

持続性:
有効: true
ストレージクラス: "local-minio-stroage"
サイズ: 10Gi
地元
-名前:ミニオ- 0
ホスト: "local-168-182-110"
パス: "/opt/bigdata/servers/minio/data/data1"
-名前:ミニオ- 1
ホスト: "local-168-182-111"
パス: "/opt/bigdata/servers/minio/data/data1"
-名前:ミニオ- 2
ホスト: "local-168-182-112"
パス: "/opt/bigdata/servers/minio/data/data1"
-名前:ミニオ- 3
ホスト: "local-168-182-110"
パス: "/opt/bigdata/servers/minio/data/data2"
  • minio/テンプレート/pv.yaml
 { { -範囲.Values ​​.persistence .local } }
---
APIバージョン: v1
種類:永続ボリューム
メタデータ:
名前: { { .name } }
ラベル:
名前: { { .name } }
仕様:
ストレージクラス名: { { $ .Values ​​.persistence .storageClass } }
容量
ストレージ: { { $ .Values ​​.persistence .size } }
アクセスモード:
-一度だけ読み書き可能
地元
パス: { { .path } }
ノードアフィニティ:
必須
ノードセレクタ用語:
-一致する表現:
-キー: kubernetes.io/ホスト名
演算子:

- { { 。ホスト} }
---
{ { -終わり} }

4) 展開を開始する

 ssh ローカル- 168 - 182 - 110 mkdir - p / opt / bigdata / servers / minio / data / data { 1 .. 2 }
ssh ローカル- 168 - 182 - 111 mkdir - p / opt / bigdata / servers / minio / data / data { 1 .. 2 }
ssh ローカル- 168 - 182 - 112 mkdir - p / opt / bigdata / servers / minio / data / data { 1 .. 2 }

# --dry-run インストールをシミュレートする
# --debug デバッグを有効にする
# helm インストール--dry-run --debug minio ./minio -n minio --create-namespace

helm をインストール--debug minio ./minio -n minio --create-namespace

注記

チャート名: minio
チャートバージョン: 11.10 .16
アプリバージョン: 2022.11.11

**チャート展開されるまでしばらくお待ちください**

MinIO & reg ;クラスター内から次の DNS 名ポート経由でアクセスできます

ミニオ.minio .svc .cluster .local

資格情報を取得するには、次を実行します:

エクスポート ROOT_USER = $ ( kubectl get secret --namespace minio minio -o jsnotallow="{.data.root-user}" | base64 -d)
エクスポート ROOT_PASSWORD = $ ( kubectl get secret --namespace minio minio -o jsnotallow="{.data.root-password}" | base64 -d)

MinIO & reg ;に接続するにはクライアントを使用するサーバー:

- MinIO & reg を実行しますクライアント ポッドに、必要なコマンド(例: 'admin info' )を追加します

kubectl run --namespace minio minio-client \
--rm --tty -i --restart='しない' \
--env MINIO_SERVER_ROOT_USER=$ROOT_USER \
--env MINIO_SERVER_ROOT_PASSWORD=$ROOT_PASSWORD \
--env MINIO_SERVER_HOST=ミニオ \
--image myharbor.com/bigdata/minio-client:2022.11.7-debian-11-r0 -- 管理者情報 minio

MinIO & reg ;にアクセスするにはウェブUI :

- MinIO & reg を入手します URL :

NODE_PORT をエクスポートします $ ( kubectl get --namespace minio -o jsnotallow="{.spec.ports[0].nodePort}" services minio)
NODE_IP をエクスポートします $ ( kubectl get nodes --namespace minio -o jsnotallow="{.items[0].status.addresses[0].address}")
echo "MinIO® Web URL: http://$NODE_IP:$NODE_PORT/minio"

チェック

 kubectl get pods  svc - n minio - wide を実行します。 

5) テスト検証

Web ログイン: リンクの説明を追加 http://local-168-182-110:31901/ アカウント/パスワード: admin/admin12345

バケットを作成してファイルをアップロードする

MCクライアント

 # メモを表示
ヘルムはミニオのメモを取得します-ミニオ

# クライアントを起動する
エクスポート ROOT_USER = $ ( kubectl get secret --namespace minio minio -o jsnotallow="{.data.root-user}" | base64 -d)
エクスポート ROOT_PASSWORD = $ ( kubectl get secret --namespace minio minio -o jsnotallow="{.data.root-password}" | base64 -d)

kubectl run --namespace minio minio-client \
--rm --tty -i --restart='しない' \
--env MINIO_SERVER_ROOT_USER=$ROOT_USER \
--env MINIO_SERVER_ROOT_PASSWORD=$ROOT_PASSWORD \
--env MINIO_SERVER_HOST=ミニオ \
--image myharbor.com/bigdata/minio-client:2022.11.7-debian-11-r0 -- 管理者情報 minio

6) アンインストール

 helm アンインストール minio - n minio

ssh ローカル- 168 - 182 - 110 rm - fr / opt / bigdata / servers / minio / data / data { 1 .. 2 } /*
ssh local-168-182-111 rm -fr /opt/bigdata/servers/minio/data/data{1..2}/*
ssh local-168-182-112 rm -fr /opt/bigdata/servers/minio/data/data{1..2}/*

Git アドレス: https://gitee.com/hadoop-bigdata/minio-on-k8s

<<:  Kubernetes スケジューラはどのように機能しますか?

>>:  VMware、2023年度第4四半期および通期の業績を発表

推薦する

コンテナ クラウド プラットフォームにマイクロサービスをデプロイするときに API ゲートウェイを選択するにはどうすればよいですか?

マイクロサービスはますます普及しており、ますます多くの企業がマイクロサービス アーキテクチャを採用し...

推奨: vodien-40 RMB/シンガポール/cPanel ホスティング/5g ハードドライブ/無制限トラフィック

Vodien はシンガポールの有名な IDC (2002 年設立) で、十分な帯域幅と高速な国内アク...

中国企業のクールカスタマーマーケティング:企業がコストゼロで数千万の露出を獲得できるよう支援

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています導入:これ...

2015 Google サンフランシスコ旅行記

序文Google トップ コントリビューター サミットに参加してから 1 か月以上が経ち、これまでの...

Oracle から離れる傾向が強まっています。 AWSは30万のデータベースのクラウドへの移行を完了したと発表した

世界中の企業顧客は長い間、オラクルのライセンス料の高さに不満を抱いていた。クラウド データベースの台...

企業が公式ウェブサイトを構築する必要があるのはなぜですか?メリットは何ですか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますインターネ...

古いプログラマー: 需要分析の経験あり

以前私が書いたブログ記事「満足できるコードの書き方」では、ユーザーのニーズが不確実なため、全体的な設...

非常に評判の高いアメリカのVPSブランドhostwindsのダラスデータセンターのVPSの簡単なレビュー

hostwindsはどうですか? Hostwindsは良いですか?今日は、Hostwinds のダラ...

ウェディングフォトグラフィーがユーザーのニーズをどのように捉えられるかについての実践的な分析

以前、ウェディング写真撮影がユーザー エクスペリエンスを向上させる方法についての記事「ケース分析: ...

Linux ホームラボで Kubernetes を実行する 5 つの理由

Raspberry Pi ホームラボで Kubernetes を実行する 5 つの理由 この投稿では...

ラジオ2023、未来はすぐそこ

VMware が設立されてから 25 年が経ち、イノベーションは VMware の代名詞となりました...

権威の高い外部リンクと一般的な外部リンクを取得する方法

外部リンクはSEOにとって非常に重要なタスクです。外部リンクは権威の高い外部リンクと一般的な外部リン...

クラウドコンピューティングの決定版ガイド: 知っておくべきこと

クラウド コンピューティング、その種類、サービス、用途、そして組織にどのようなメリットをもたらすかに...

入札プロジェクトはどのようにして複数のチャネルを通じてプロモーション情報を取得できますか? (パート2)

前回の記事「入札促進のための情報源をどうやって入手するか?」に引き続き、 》 3. 垂直フォーラムの...

ユーザーエクスペリエンスは時代遅れ、販売感情が重要

昨年、あるパンケーキ店やある牛ブリスケットレストランについて人々が話題にし始めてから、これらのビジネ...