Kubernetes - 部署 Mysql

在部署之前,先要完成集群初始化

准备

# 为 MySQL 服务创建一个 RC 定义文件 mysql-rc.yaml
[root@master-node application]# cat mysql-rc.yaml 
apiVersion: v1
kind: ReplicationController # 副本控制器
metadata:
  name: mysql # RC的名称,全局唯一
spec:
  replicas: 1 # Pod副本期待数量
  selector:
    app: mysql # 符合目标的Pod拥有此标签
  template: # 根据此模板创建Pod的副本(实例)
    metadata:
      labels:
        app: mysql # Pod副本拥有的标签,对应RC的Selector
    spec: # 这里的内容和 docker 配置差不多,不再进行解释
      containers:
      - name: mysql
        image: mysql
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"

RC 的创建与查询

[root@master-node application]# kubectl create -f mysql-rc.yaml
replicationcontroller "mysql" created
# 通过命令查看 rc 列表,就有一个名为 mysql 的这个 rc ,如果这个集群没有加入节点的话,Ready 会是 0
[root@master-node application]# kubectl get rc
NAME    DESIRED   CURRENT   READY   AGE
mysql   1         1         1       139m

校验 Pod 是否部署成功

通过命令查看 pod 列表,可以看到有一个名为 mysql-xxxpod ,可以看到 Ready0/1STATUSPending ,这是因为执行这个命令之前我没有往这个集群添加节点。

[root@master-node application]# kubectl get pods
NAME          READY   STATUS    RESTARTS   AGE
mysql-qtk45   0/1     Pending   0          94s

在我添加节点之后,再次执行命令,可以看到 STATUS 的状态为 ContainerCreating ,说明在 node 节点 pull 镜像了,等镜像拉取完成并启动就是状态就变为 Running 了,说明部署成功了。为什么还有一个 Terminating 呢,还要再翻翻资料。(估计是因为我 reset 了节点,改了 hostname 再加到 master 导致的=。=)

[root@master-node ~]# kubectl get pods
NAME          READY   STATUS              RESTARTS   AGE
mysql-xt4tx   0/1     ContainerCreating   0          112m

[root@master-node ~]# kubectl get pods
NAME          READY   STATUS        RESTARTS   AGE
mysql-wbg4h   1/1     Running       0          15m
mysql-xt4tx   0/1     Terminating   0          132m

你可能感兴趣的:(Kubernetes - 部署 Mysql)