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

准备

# 为 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-xxx 的 pod ,可以看到 Ready 为 0/1 ,STATUS 为 Pending ,这是因为执行这个命令之前我没有往这个集群添加节点。

[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

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐