kubernetes 构建mysql_kubernetes权威指南学习第三天 创建一个mysql服务

1.创建一个mysql服务,首先需要创建一个yaml的mysql文件:

cf3717533ac9

mysql-rc.yaml文件内容对文件中的内容简单的解释:

a.yaml文件中的kind属性,用来表明此资源对象的类型,如上文件中表明是一个RC(副本控制器)

b.spec一节中是RC的相关属性的定义:

1)spec.selector是RC的Pod标签选择器,即监控和管理拥有这些标签的Pod实例,确保当前集群中始终有且仅有spec.replicas个Pod实例在运行

2)spec.replicas=1:表示只能运行一个mysql-Pod实例。如果集群中运行的Pod数量小于该值时,RC会根据spec.template一节中定义的Pod模板生成相应数量的Pod实例

3)在创建Pod实例的时候根据spec.template.metadata.labels指定该Pod的标签,需要注意的是这里的labels必须匹配之前的spec.selector,否则此RC每次创建了一个无法匹配的label的Pod,就会不停的创建这个Pod,会死循环中。

2.创建mysql-RC的实例:[root@localhost yaml]# kubectl create -f /root/yaml/mysql-rc.yaml

replicationcontroller "mysql" created

3.查看刚刚建立的RC

cf3717533ac9

mysql-rc的创建

3.查看pod的创建情况:[root@localhost yaml]# kubectl get pods

NAME          READY    STATUS              RESTARTS  AGE

mysql-blszl  0/1      ContainerCreating  0          2m

报错1:pod实例一直处于ContainerCreating状态

details: (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)"

报错的原因:

redhat-ca.crt -> /etc/rhsm/ca/redhat-uep.pem     由于/etc/rhsm/ca/redhat-uep.pem不存在造成的问题

解决的方法:

yum install *rhsm*   -y

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout     /etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem

此时软连接就不报错了

删除一开始创建的rc

kubectl  delete -f  /root/yaml/mysql-rc.yaml

再重现创建rc

kubectl create  -f  /root/yaml/mysql-rc.yaml

查看pod状态命令中参数的介绍:

cf3717533ac9

查看pod命令回显

NMAE:pod的实例名,其中mysql-XXXXX是随机生成的

READY:表示正常的pod实例的个数

STATUS:Terminating  表示正在结束(用于删除一个pod实例之后的状态)

ContainerCreating  表示pod实例正在创建

Running   表示pod实例正在运行中

Pending   正在等待中

AGE: 表示pod实例正在运行中

4.查看mysql-pod实例详细信息: kubectl describe pod pod_name

查看node信息: kubectl describe node  node_name

详情中会有Event事件:

记录事件的最早产生时间(FirstSeen),最后重现时间(LastSeen),重复次数(Count),发起者(From),类型(Type),以及导致事件的原因(ReasonMessage)。

当发现pod一直创建不成功的时候可以通过上述命令中的Event内容查找出现问题的原因。

5.创建一个与mysql-pod实例相关联的server服务(创建一个mysql-svc.yaml文件):

cf3717533ac9

mysql-svc.yaml文件文件中内容解释:

yaml文件中的kind属性,用来表明此资源对象的类型,此处是Service。

yaml文件中metadata.name是Service的服务名(ServiceName)

yaml文件中spec.port属性定义Service的虚拟端口

yaml文件中spec.selector确定哪些pod实例对应到本服务上。

6.创建一个mysql服务和查看该服务:

cf3717533ac9

创建和查看mysql-service服务

mysql服务被分配一个10.254.249.5的集群IP地址。这是一个虚地址,k8s集群中其他新创建的pod就可以通过Service的Cluster IP+端口号来连接和访问它。该ip地址是k8s在创建Service之后系统自动分配的,其他pod只要知道Service的唯一名称,容器可以从环境变量中获取到Service对应的ip和端口号,从而发起连接请求。

进入到mysql-docker中:

docker run -it mysql /bin/bash

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值