前言
本次記錄安裝mysql
單節點,因爲是測試機,集羣現在還沒有安裝上,後續上生產環境部署之後再補上K8s
部署mysql
集羣篇
部署
編寫Pod控制器
Kubernetes中內建了很多controller(控制器),這些相當於一個狀態機,用來控制Pod的具體狀態和行爲。
編輯文件mysql-rc.yaml
如下:
apiVersion: v1
kind: ReplicationController
metadata:
name: mysql-rc
labels:
name: mysql-rc
spec:
replicas: 1
selector:
name: mysql-pod
template:
metadata:
labels:
name: mysql-pod
spec:
containers:
- name: mysql
image: mysql:5.7
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3306 #容器端口
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456" #root密碼
編寫Service
Service定義了一個服務的訪問入口地址,一個服務通道。前端應用通過該入口地址訪問其背後的一組由Pod副本組成的集羣實例,來自外部的訪問請求被負載均衡到後端的各個容器應用上。
編輯文件mysql-svc.yaml
如下:
apiVersion: v1
kind: Service
metadata:
name: mysql-svc
labels:
name: mysql-svc
spec:
type: NodePort
ports:
- port: 30003 #容器間通信端口
protocol: TCP
targetPort: 3306 # 容器目標端口,與mysql-rc.yaml中containerPort保持一致
name: http
nodePort: 30003 # 外部訪問端口
selector:
name: mysql-pod
啓動容器
$ kubectl create -f mysql-rc.yaml
replicationcontroller "mysql-rc" created
$ kubectl create -f mysql-svc.yaml
service "mysql-svc" created
$ kubectl get po |grep mysql
貼張圖
測試
新建用戶,數據庫授權這些這裏不做說明。也可以先進入容器,再使用命令進行登錄
進入容器命令 kubectl exec -it <container_id> /bin/bash
後記
這是使用mysql
的基本用法,可以自己定義配置文件mysqld.cnf
,然後使用docker
構建適合項目的鏡像,達到定製化效果。