でのデータベースサーバーの配備
12709 ワード
このチュートリアルでは、ローカルマシンで設定されているKubernetesクラスタにMySQLデータベースサーバーを展開する方法を学びます.これはKubernetesでデータを保持する多くの方法の一つです.
Kubernetesは、コンテナのアプリケーションの展開、スケーリング、および管理を自動化するためのツールです.
このチュートリアルで使用するいくつかの用語やKubernetesオブジェクトに慣れています. 技術的には、あなたは
永続的なボリュームを静的または動的に作成することができます.このチュートリアルの次の段階では、静的に行う方法を学びます.
このチュートリアルでは、スムーズに動作するようにインストールする必要があります. あなたのマシンのHERE インストールする ローカルKubernetesクラスター 必要に応じて、Dockerハブアカウントを作成できますHERE
永続的なボリューム( PV )をビルドする
まず、作業ディレクトリを作成して移動します.
このYAMLファイルは、Kubernetesに適用されます
永続的ボリュームクレーム( PVC )のビルド
作業ディレクトリ中
MySQL podの展開
ここでは、ファイル名を作成します
この配備ファイルを適用する前に、作成されるMySQLデータベースPODにアクセスする他のPODを許可するサービスオブジェクトを作成します.
まだ
Minikube迅速にMacOS、Linux、およびWindows上のローカルKubernetesクラスタを設定します.
では、設定したすべての設定ファイルを使いたいというKubernetesに教えてください.これらのコマンドを
ステップ1 :永続的なボリュームを作成する
ステップ2:永続的なボリュームクレームを作成する
ステップ3 :配備の作成
手順4 :サービスの作成
この一連のコマンドは
Kubernetesオブジェクトが正常に作成されたかどうかを確認します.
展開
ポッド
サービス
これまでのところ、これまでのところ、MySQLデータベースサーバーポッドにクライアントとして接続するMySQLコンテナを実行しているpodを作成するテストを実行しました
MySQLシェルが開き、新しいデータベース、新しいテーブル、テーブルにデータを挿入し、より多くのSQLコマンドを作成できます.
結論
これにより、Kubernetesオブジェクトを介してKubernetesクラスタ内のストレージの静的メソッドを使用してMySQLデータベースサーバーを展開する方法を学びました.
また、対話型モードでコンテナーを実行するときに、SQLコマンドを実行することによって、その配備されたサーバーにクライアントを接続する方法をテストしました.
あなたが質問、コメントがあるならば、ここで、または、私の上で手を伸ばすのを自由に感じてください;私は、答えるより幸せです.
また近いうちに.
Kubernetesは、コンテナのアプリケーションの展開、スケーリング、および管理を自動化するためのツールです.
このチュートリアルで使用するいくつかの用語やKubernetesオブジェクトに慣れています.
Docker Image
: 完全に機能的な容器をセットアップするために必要なすべての必需品を詰めるファイルのコレクション.Container
: 画像、実行中のイメージのインスタンス.Node
: Kubernetesオブジェクト、コンテナを実行し、リソースを提供する仮想マシン.Kubernetes Cluster
: それらを管理するノードと構成のコレクション.Pod
: Kubernetesオブジェクト、実行コンテナ、Kubernetesで作成および管理できるコンピューティングの最小展開単位.Deployment
: Kobernetesオブジェクト(それはポッドのセットをモニターします)、それらのポッドが走っていて、彼らが下っているならば、ポッドを再開することを確認してください.Service
: 実行中のコンテナ(POD)にアクセスする方法を提供するKubernetesオブジェクト.Persistent Volume
: Kuberneteオブジェクトは、クラスタ内のストレージの一部です.Persistent Volume Claim
: 永続ボリュームストレージの要求Kubernetes Config file
: 作成する別のオブジェクトについてKubernetesを指示するファイルです.これはYAMLの構文で書かれています.Deployment
それはPod
MySQL Dockerイメージのコンテナを実行すると、Service
これはPODへのアクセスを許可します.このpodはストレージを要求するPersistent Volume Claim
) ストレージリソースにPersistent Volume
).永続的なボリュームを静的または動的に作成することができます.このチュートリアルの次の段階では、静的に行う方法を学びます.
このチュートリアルでは、スムーズに動作するようにインストールする必要があります.
Minikube
, クリックHERE minikubeをインストールするには永続的なボリューム( PV )をビルドする
まず、作業ディレクトリを作成して移動します.
$ mkdir mysql-kube
$ cd mysql-kube/
YAMLファイル名mysql-pv.yaml
, 次のように入力します.apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
ファイルを保存して閉じます.このYAMLファイルは、Kubernetesに適用されます
Persistent Volume
, MySQLデータベースサーバーPod
. 永続的なボリュームは、podのライフサイクルに依存しません.これは、いつでも、ポッドがクラッシュまたは誤動作のために再開するということを意味します.永続的ボリュームクレーム( PVC )のビルド
作業ディレクトリ中
mysql-kube/
, ファイル名mysql-pvc.yaml
, 次のように入力します.apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
そこに、あなたが適用されたときにストレージを提供するファイルを作成したが、このファイルはPersistent Volume Claim
これは、MySQLポッドがそのプロビジョニングされたストレージを要求するために使用されます.MySQL podの展開
ここでは、ファイル名を作成します
mysql-deployment.yaml
同じディレクトリにmysql-kube/
. ファイルを作成し、以下のコードを実行します.apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
spec:
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:8.0
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
このファイルは、MySQL Dockerイメージのコンテナを実行しているPODを管理するための展開オブジェクトを作成しますPersistent Volume Claim
PODが要求するために使用するPersistent Volume
. この配備ファイルを適用する前に、作成されるMySQLデータベースPODにアクセスする他のPODを許可するサービスオブジェクトを作成します.
まだ
mysql-kube/
ディレクトリを作成するmysql-service.yaml
次のコードを実行します.apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
selector:
app: mysql
clusterIP: None
ファイルを保存し、Kubernetesクラスタが稼働していることを確認します.端末をオープンし、mysql-kube/
以下を実行します.$ minikube start
Minikube迅速にMacOS、Linux、およびWindows上のローカルKubernetesクラスタを設定します.
では、設定したすべての設定ファイルを使いたいというKubernetesに教えてください.これらのコマンドを
mysql-kube/
以下の順番でステップ1 :永続的なボリュームを作成する
$ kubectl apply -f mysql-pv.yaml
ステップ2:永続的なボリュームクレームを作成する
$ kubectl apply -f mysql-pvc.yaml
ステップ3 :配備の作成
$ kubectl apply -f mysql-deployment.yaml
手順4 :サービスの作成
$ kubectl apply -f mysql-service.yaml
この一連のコマンドは
Persistent Volume
, エーPersistent Volume Claim
, エーDeployment
それはPod
Aを走るcontainer
MySQL DockerのイメージとService
これは、そのpodへのアクセスを許可します.Kubernetesオブジェクトが正常に作成されたかどうかを確認します.
展開
$ kubectl get deployments
ポッド
$ kubectl get pods
サービス
$ kubectl get services
これまでのところ、これまでのところ、MySQLデータベースサーバーポッドにクライアントとして接続するMySQLコンテナを実行しているpodを作成するテストを実行しました
$ kubectl run -it --rm --image=mysql:8.0 --restart=Never mysql-client -- mysql -h mysql -password="password"
このコマンドは、MySQLコンテナを対話モードで実行します.これにより、コンテナの実行時にコマンドを実行できます.MySQLシェルが開き、新しいデータベース、新しいテーブル、テーブルにデータを挿入し、より多くのSQLコマンドを作成できます.
結論
これにより、Kubernetesオブジェクトを介してKubernetesクラスタ内のストレージの静的メソッドを使用してMySQLデータベースサーバーを展開する方法を学びました.
また、対話型モードでコンテナーを実行するときに、SQLコマンドを実行することによって、その配備されたサーバーにクライアントを接続する方法をテストしました.
あなたが質問、コメントがあるならば、ここで、または、私の上で手を伸ばすのを自由に感じてください;私は、答えるより幸せです.
また近いうちに.
Reference
この問題について(でのデータベースサーバーの配備), 我々は、より多くの情報をここで見つけました https://dev.to/musolemasu/deploy-a-mysql-database-server-in-kubernetes-static-dpcテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol