KubeSphere学習---Mysqlミドルウェアのインストールとデプロイの実戦

ここに画像の説明を挿入

序文

前回の記事では、KubeSphere のマルチテナント システムについて説明し、多くのユーザーと多くのプロジェクトを作成しましたが、その中から、ミドルウェアのデプロイと学習のために「dev-zhao」ユーザーと「彼の」プロジェクトを選択しました。

アプリケーションのデプロイメントで注意が必要な要素

ここでは、私の KubeSphere が Kubernetes に基づいてデプロイされているためです。次に、ミドルウェアをデプロイするときは、Kubernetes の場合と同じです。たとえば、次のようになります。
1. アプリケーションのデプロイ方法: ステートレス ワークロードを使用していますか? それともステートフルロードでしょうか?それともデーモン形式のロードですか? ステートレス ロードの作成
: バックエンド データ ストレージを必要としない Nginx、Httpd などのデプロイに適しています。
ステートフル ロード: Mysql と Redis をデプロイする場合、その背後にあるストレージへの接続に適している必要があります。たとえば、mysql ポッドがダウンしても、その背後に保存されているデータはまだそこにあり、送信中に Mysql を作成します、バックデータストレージに自動的に接続できます。
デーモン プロセス セット: 各ノード ポッドにデプロイする必要があるログ収集ツールに適しており、複数のログ収集ポッドがデータをマージしてバックエンド xxx プラットフォームに送信します。

2. アプリケーション データのマウント: Kubernetes にボリュームを保存する必要があることがわかっているため、KubeSphere を通じて実装できます。

3. アプリケーションのアクセシビリティ: ワークロードをデプロイした後、ユーザー アクセスを実現したり、クラスターの内部コンポーネントにアクセスしたり、クラスター全体の合計トラフィック エントランスを作成したい場合は、多くのポッドのサービスを作成する必要があります。 Kubernetes、Ingress も作成可能

以上の3つがKubeSphere上にミドルウェアを導入する3大要素ですが、実はKubernetesの導入と同じで、KubeSphere上で運用した方が便利です。

上記の関係は次のとおりです。
ここに画像の説明を挿入

KubeSphere デプロイメントコンポーネントの要素を示す

まず dev-zhao を使用し (アカウントは自由に作成できます)、彼のプロジェクトを入力します。
ここに画像の説明を挿入

MySQLのデプロイ

デプロイする前に、まず考えてみましょう。Mysql をデプロイするときに、上記の 3 つの要素のうちいくつを満たす必要がありますか? (1) まず、Mysql にはデータが保存されます。
そこに (3) ロードが必要 Mysql にはデータを保存する場所が必要なので、ステートフル ワークロードで実装します。

docker run -p 3306:3306 --name mysql-01 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
-d mysql:5.7 

ここに画像の説明を挿入
1. ConfigMap を実装し、プロジェクトを入力し、左側のリストで「構成センター --> 構成」を見つけて、「作成」をクリックします。
ここに画像の説明を挿入
ここに画像の説明を挿入

このようにして、ConfigMap が設定されます。

2. PVC を作成し、ユーザーは MySQL データを保存します。
プロジェクトを入力し、左側のリストで「ストレージ管理 --> ストレージ ボリューム」を見つけ、「作成」をクリックします。Mysql 永続ストレージ PVC が作成されるように、
ここに画像の説明を挿入
ここに画像の説明を挿入
詳細オプションを設定する必要はありません。

3. ステートフル ロードの作成
プロジェクトを入力し、左側のリストで「アプリケーション ロード ------> ワークロード ------> ステートフル レプリカ セット」を見つけて、「作成」をクリックします。
ここに画像の説明を挿入
次の構成はより重要です。
ここに画像の説明を挿入

ここに画像の説明を挿入
ポッドをキー PVC ボリュームに設定し、作成したばかりの ConfigMap を関連付けて
ここに画像の説明を挿入

、「作成」をクリックします。
ここに画像の説明を挿入

検知効果

1. Mysql ポッドに入り、Mysql にログインします。
-h は、サービスによって提供される DNS 解決で使用されます。
ここに画像の説明を挿入

2. このコンテナのターミナルに入り、my.cnf ファイルを表示します。
ここに画像の説明を挿入

ここに画像の説明を挿入
後で変更したい場合は、「編集」オプションを見つけて変更するだけで、変更された構成情報が自動的に同期されます。
もちろんKubernetesプラットフォーム上でも確認できます

[root@k8s-master ~]# kubectl get pods -A | grep mysql
his                            his-mysql-0                                                       1/1     Running     0          9m30s

これで、Mysql ポッドが作成されましたが、クラスターの外部の Mysql サービスにはアクセスできないため、Mysql ネットワーク (サービス) を設定する必要があります。

MySQL 負荷分散ネットワークをデプロイする

「サービス」で作成する
1. まずはクラスタ内にサービスを作成しましょう
ここに画像の説明を挿入
ここに画像の説明を挿入
このとき、DNSドメイン名は独自の名称となります。

2. クラスターへの外部アクセス用のサービスを作成するには
ここに画像の説明を挿入

要約する

このようにして、Mysql 上での関連操作が完了します。以降、他のミドルウェアをデプロイする場合も手順は同じです。

おすすめ

転載: blog.csdn.net/m0_57776598/article/details/124063782