dan-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
volumeMounts:
- mountPath: /var/lib/mysql
name: mydata
env:
- name: MYSQL_ROOT_PASSWORD
value: "root"
volumes:
- name: mydata
hostPath:
path: /root/mysql/data
# kubectl apply -f dan-mysql-rc.yaml
replicationcontroller/mysql-rc created
[root@master k8s_setting]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
mysql-rc-wkdwf 1/1 Running 0 20s 10.40.0.1 node1 <none> <none>
nginx-86c57db685-v6szq 1/1 Running 2 3d19h 10.32.0.3 node2 <none> <none>
此时说明pod已经建好了(即docker的镜像、容器建好了)
dan-mysql-service.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-svc
labels:
name: mysql-svc
spec:
type: NodePort
ports:
- port: 3306
targetPort: 3306
nodePort: 30001
selector:
name: mysql-pod
kubectl apply -f dan-mysql-service.yaml
service/mysql-svc created
# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 30d
mysql-svc NodePort 10.111.25.106 <none> 3306:30001/TCP 14m
nginx NodePort 10.99.194.238 <none> 80:30560/TCP 29d
navicate验证:
另外在节点上挂载的数据也出来了:
如果删除service和rc之后,在建同样的service和rc会怎么样呢?答案是之前建的数据库可以继续使用
kubectl delete -f dan-mysql-rc.yaml
kubectl delete -f dan-mysql-service.yaml