加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱资讯网 (https://www.52junxun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

004 在kubernetes集群中创建mysql的RC和service资源并成

发布时间:2022-11-21 11:09:51 所属栏目:MySql教程 来源:
导读:  为mysql服务创建一个ReplicationController资源类型的定义文件

  [ty@test yaml]$ cat mysql-rc.yaml

  apiVersion: v1 #需要使用的api的版本

  kind: ReplicationController #指定的资源类型
  为mysql服务创建一个ReplicationController资源类型的定义文件
 
  [ty@test yaml]$ cat mysql-rc.yaml
 
  apiVersion: v1 #需要使用的api的版本
 
  kind: ReplicationController #指定的资源类型
 
  metadata: #开始此资源的元数据
 
   name: mysql #此资源的名称
 
  spec: #此资源类型的规格配置
 
   replicas: 1 #此资源pod副本数
 
   selector: #开始指定此资源的标签选择器
 
   app: mysql #指定标签选择器key: values对, 符合目标的pod一定拥有此标签
 
   template: #开始指定此资源需要生成的pod的模板
 
   metadata: #开始指定pod的元数据
 
   labels: #开始指定pod的标签
 
   app: mysql #指定pod标签的key:values对,要和上边资源rc的标签选择器相同
 
   spec: #开始指定pod的规格配置
 
   containers: #开始指定pod包含的容器的规格
 
   - name: mysql #指定容器的名字
 
   image: mysql #指定容器使用的镜像名
 
   ports: #开始指定容器使用的端口
 
   - containerPort: 3306 #指定使用的容器端口
 
   env: #开始配置所需的环境变量
 
   - name: MYSQL_ROOT_PASSWORD #变量的名字 k:v
 
   value: "123456" #变量的值 k:v
 
  创建好资源定义文件后将其发布到kubernetes集群中
 
  [ty@test yaml]$ kubectl apply -f mysql-rc.yaml
 
  replicationcontroller/mysql created
 
  创建之后需要等待一会儿,pod才能正常创建成功并正常运行,这是因为需要从镜像仓库下载所需镜像文件,而且集群需要确定调库到哪个节点上,这个时间取决于当前网络状况和集群的性能。创建的过程中pod显示为“pending”状态,完成后显示“running”。
 
  执行“kubectl get pod -o wide”可以看到此pod运行在test1.ty.com节点上。
 
  在此节点上查看容器状态,可以看到有一个名为“mysql”的容器和“pause”的容器。第二个容器被称之为Pause的容器,其他容器则为业务容器,这些业务容器共享Pause容器的网络栈和Volume挂载卷,因此他们之间通信和数据交换更为高效,在设计时我们可以充分利用这一特性将一组密切相关的服务进程放入同一个Pod中。同一个Pod里的容器之间仅需通过localhost就能互相通信。
 
  创建一个与rc资源相关联的Server资源定义文件
 
  [ty@test yaml]$ cat mysql-svc.yaml
 
  apiVersion: v1
 
  kind: Service #表明资源类型为service
 
  metadata:
 
   name: mysql
 
  spec:
 
   ports:
 
   - port: 3306 #Service提供的服务的端口
 
   selector:
 
   app: mysql #与service对应的pod拥有此标签。

  创建Service
 
  [ty@test yaml]$ kubectl apply -f mysql-svc.yaml
 
  service/mysql created
 
  显示创建的service
 
  可以看到mysql服务被分配到了一个10.105.47.163的集群IP上。现在集群中其它pod就可以通过这个Server的名称就可以获取其对应的IP和port3306就可以访问到这个服务mysql集群,发起tcp/ip请求。
 
 

(编辑:我爱资讯网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!