Kubernetes (k8s) 是一種流行的容器編排工具,用于自動化部署、擴展和管理容器化應用程序。MySQL 是一種流行的關系數據庫,提供了可擴展性和穩定性。在此文中,我們將介紹如何在 Kubernetes 中安裝 MySQL。
首先,需要創建 Kubernetes Deployment 和 Service。為此,我們可以創建一個 YAML 文件:
apiVersion: apps/v1 kind: Deployment metadata: name: mysql labels: app: mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:8.0 env: - name: MYSQL_ROOT_PASSWORD value: "password" - name: MYSQL_DATABASE value: "mydb" ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-pvc mountPath: /var/lib/mysql volumes: - name: mysql-pvc persistentVolumeClaim: claimName: mysql-pvc --- apiVersion: v1 kind: Service metadata: name: mysql labels: app: mysql spec: type: ClusterIP selector: app: mysql ports: - name: mysql port: 3306 targetPort: 3306
這個 YAML 文件創建了一個名為“mysql”的 Deployment 和 Service。Deployment 中有一個名為“mysql”的容器,它使用 MySQL 8.0 鏡像,并掛載一個名為“mysql-pvc”的永久存儲卷,它將 MySQL 數據目錄映射到容器中。此外,容器設置了 MySQL 的根密碼和數據庫名。Service 暴露了端口 3306。
創建以上 YAML 文件完成之后,請使用以下命令運行它:
kubectl apply -f mysql.yaml
這將創建名為“mysql”的 Deployment 和 Service。
我們可以使用以下命令檢查 MySQL Pod 的狀態:
kubectl get pods -l app=mysql
您將看到 Pod 的狀態,應該為“Running”。
接下來,我們將在 MySQL 實例中創建一個表。為此,請使用以下命令打開 MySQL shell:
kubectl exec -it $(kubectl get pods -l app=mysql -o jsonpath="{.items[0].metadata.name}") -- mysql -uroot -ppassword
這將打開一個 MySQL shell,您可以使用它來執行 SQL 命令。在 shell 中,使用以下命令創建一個表:
CREATE TABLE messages ( id INT NOT NULL AUTO_INCREMENT, message VARCHAR(255) NOT NULL, PRIMARY KEY(id) );
現在,您已經在 MySQL 數據庫中創建了一個表!如果您需要訪問 MySQL 容器的 shell,請使用以下命令:
kubectl exec -it $(kubectl get pods -l app=mysql -o jsonpath="{.items[0].metadata.name}") -- bash
這將打開一個 shell,您可以在其中運行 MySQL 客戶端(參見上文)。
總而言之,使用 Kubernetes 在容器中安裝和運行 MySQL 非常容易。在此文中,我們已經介紹了如何創建 Kubernetes Deployment 和 Service,以及如何在 MySQL 數據庫中創建一個表。