mysql可以以docker的形式在集群內(nèi)部署叉信,也可以安裝在集群之外拆檬,以服務(wù)的形式部署到集群內(nèi)。
(1)耘戚、如果是在集群內(nèi)部署,可以啟動一個ReplicationController操漠,用以對mysql pod進(jìn)行監(jiān)控收津,并同時啟動一個Service饿这,用以集群訪問。
(2)撞秋、如果mysql是安裝在集群之外长捧,那么可以啟動一個Endpoint和Service,將mysql引入集群之中吻贿。
下面分別對這兩種方式進(jìn)行部署串结。
1、安裝Mysql
創(chuàng)建mysql-rc.yaml和mysql-svc.yaml,分別如下:
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
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "mysql"
mysql-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-svc
labels:
name: mysql-svc
spec:
type: NodePort
ports:
- port: 3306
protocol: TCP
targetPort: 3306
name: http
nodePort: 30306
selector:
name: mysql-pod
在mysql-rc.yaml中舅列,image參數(shù)可以指定mysql的版本肌割,如8.0.11、5.7.22等帐要。這里省略了把敞,表示用latest。另外榨惠,可以指定鏡像庫奋早,這里使用阿里云鏡像庫,在安裝docker時進(jìn)行了配置赠橙。env參數(shù)指定了mysql的root密碼耽装。
? 在mysql-svc.yaml中,targetPort表示mysql pod中mysql窗口的目標(biāo)端口期揪,默認(rèn)為3306掉奄,type類型為NodePort,表示將映射到本地端口凤薛,本地端口為nodePort: 30306姓建。
接下來啟動ReplicationController和Service,執(zhí)行以下命令:
kubectl create -f mysql-rc.yaml
kubectl create -f mysql-svc.yaml
啟動后可以查看mysql部署在了哪個node上枉侧,執(zhí)行以下命令可以查看:
kubectl get pod -o wide |grep mysql
遠(yuǎn)程連接mysql8.0時可能會報一些錯誤引瀑,如navicat連接狂芋。這里對mysql8.0作一些設(shè)置榨馁。
(1)、登錄到192.168.56.28 node 中帜矾。
(2)翼虫、執(zhí)行docker ps查看mysql容器。如下所示:
(3)屡萤、進(jìn)入mysql容器珍剑,執(zhí)行以下命令進(jìn)入容器,這里container_id為6f0827595caf
docker exec -it container_id /bin/bash
(4)死陆、在容器內(nèi)登錄mysql招拙。執(zhí)行以下命令唧瘾,-h為ip,容器內(nèi)ip為127.0.0.1别凤,-r為用戶名饰序,-p為密碼,在mysql-rc中設(shè)置的密碼规哪。
mysql -h127.0.0.1 -uroot -pmysql
(5)求豫、對mysql進(jìn)行如下設(shè)置。
alter user 'root'@'%' identified with mysql_native_password by'root';
alter user 'root'@'%' identified by 'mysql';
(6)诉稍、退出mysql和容器蝠嘉,執(zhí)行quit;退出mysql,按ctrl+p后杯巨,再按ctrl+q從容器中返回node主機(jī)蚤告。
設(shè)置好mysql后,可以遠(yuǎn)程連接node中的mysql舔箭,node的ip為127.0.0.1罩缴,映射的端口為30306,可以用navicat工具連接到這個myql层扶。