k8s是一種用于容器編排和管理的開源平臺(tái)。它可以自動(dòng)化地部署、擴(kuò)展和管理容器應(yīng)用程序。本文將介紹在k8s平臺(tái)上部署Mysql服務(wù)的過(guò)程。
步驟如下:
$ mkdir mysql $ cd mysql $ touch secrets.yaml $ touch deployment.yaml $ touch service.yaml
首先在本地創(chuàng)建一個(gè)mysql目錄,然后在該目錄下創(chuàng)建三個(gè)文件:secrets.yaml、deployment.yaml和service.yaml。
接下來(lái),我們來(lái)創(chuàng)建一個(gè)secret文件。在secrets.yaml文件中添加以下內(nèi)容:
apiVersion: v1 kind: Secret metadata: name: mysql-pass type: Opaque data: password: BASE64ENCODEDPASSWORD
其中password字段是BASE64編碼后的密碼。請(qǐng)?zhí)鎿QBASE64ENCODEDPASSWORD為您的實(shí)際BASE64編碼密碼。
然后,讓我們創(chuàng)建一個(gè)deployment文件deployement.yaml。在該文件中添加以下內(nèi)容:
apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-pass key: password ports: - containerPort: 3306 volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim
在這個(gè)deployment文件中,我們定義了一個(gè)mysql容器。我們使用了mysql:5.7的鏡像并設(shè)置了MYSQL_ROOT_PASSWORD環(huán)境變量。MYSQL_ROOT_PASSWORD環(huán)境變量的值來(lái)自我們?cè)谥岸x的secrets.yaml文件中的密碼。
我們還指定了要使用的端口號(hào)為3306。我們還定義了一個(gè)名為mysql-pv-claim的persistent volume claim。這是為了在容器中保留數(shù)據(jù)。
最后,我們創(chuàng)建一個(gè)service.yaml文件:
apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - name: mysql port: 3306 targetPort: 3306 selector: app: mysql
我們定義了一個(gè)名為mysql的service,將其類型設(shè)置為ClusterIP。我們還在該文件中定義了用于連接Mysql服務(wù)的端口號(hào)。
最后,我們用以下命令部署應(yīng)用:
$ kubectl apply -f secrets.yaml $ kubectl apply -f deployment.yaml $ kubectl apply -f service.yaml
至此,我們已經(jīng)成功在k8s上部署了Mysql服務(wù)。您現(xiàn)在可以使用以下命令驗(yàn)證是否存在mysql pod:
$ kubectl get pods
您應(yīng)該可以看到mysql pod的存在?,F(xiàn)在可以連接到Mysql服務(wù)并使用它了。