【クラウドネイティブ】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四半期および通期の業績を発表

推薦する

gigsgigscloud: スピードと高防御の両方を考慮した香港の高防御VDS、CN2高速ネットワーク+1Tbps DDoS防御+Jingdun CC防御、

gigsgigscloud には、速度、超高 DDoS 防御、CC 攻撃防御を特徴とする新しい香港 ...

ウェブマスターは「Baidu の重み」に執着するのをやめるべきだ

Google が中国から撤退し、Baidu が唯一の支配的プレーヤーになって以来、ますます多くのウェ...

クラウド コンピューティング インフラストラクチャを監視するための 7 つのステップ

デジタル化は新たな社会のホットスポットおよびトレンドになりつつあります。企業はデジタルトランスフォー...

Cloud+ CommunityとKuaishouが共同で、5つの人気のビッグデータ技術の詳細な分析を提供

[51CTO.com からのオリジナル記事] データは企業にとって貴重な資産となっています。データ分...

従業員を解雇するリスクがあるクラウド コンピューティングの隠れたコスト 4 つ

ジョンは、会社のワークロードをクラウドに移行することに懸命に取り組んだデータセンターの従業員です。 ...

最適化が難しくなるにつれて、インターネット企業は注文の失敗をどのように回避できるでしょうか?

今日、鄭州のあるインターネット企業とグループチャットをしていたところ、最適化の難易度が増し、コスト投...

ハイブリッド クラウド戦略: 更新の時期を示す 4 つの兆候

ネットワーク遅延について不満を言う人はいますか?クラウド コンピューティングの法案は経営者に衝撃を与...

キーワード最適化パスをレイアウトして、合理的かつ完全な最適化状況を確立します。

キーワード最適化は、常にウェブサイト最適化の焦点でした。ウェブサイトの設立から立ち上げまで、キーワー...

浙江日報メディアが新メディアに生まれ変わる:32億元の買収で追加発行を待つ

「株主総会で承認された後、当社はこの計画を中国証券監督管理委員会に提出し、現在、総会からのフィードバ...

趣頭条がどん底に!

「我々は困難な変革期にある。成功しなければ、我々は消滅してしまうだろう」と、Qutoutiaoの内部...

モバイル エッジ コンピューティング: 5G の真の未来

5G の約束はまだ果たされていないが、失敗と断言するのは時期尚早だ。データバンクのCEO、ラウル・K...

ウェブサイトSEOにおける定量的な操作

SEO や運用管理の担当者は、管理職であれば何かしらの問題に直面することが多いため、コミュニケーショ...

詳細説明:仮想化とコンテナ化、その違いをご存知ですか?

仮想マシンとコンテナは、抽象化の最も一般的な形式の 2 つですが、この 2 つの違いは何でしょうか?...

一生プロモーションをやりたいですか?私はまだ大きなウェブサイトを構築したい

1983 年、ジョブズは当時ペプシコの社長だったジョン・スカリーをアップルに引き入れるために、有名な...

SEOの最高のルール:ユーザーエクスペリエンス

私はしばらくの間、主要なウェブマスター フォーラムに参加しており、フォーラムから多くの SEO 手法...