k8s集群上部署mysql服务实践

最近学习k8s相关知识,整理一下第一次部署经验~

在已经搭建好的k8s集群上部署mysql服务主要步骤如下:

1、创建一个新的namespace

2、在该namespace下创建一个deployment

3、deployment自动部署好replicaSet和pod

4、创建对应服务

5、验证是否成功

 

下面是具体的操作说明

1、创建一个新的namespace

#创建namespace ,命令行直接创建

$ kubectl create namespace test

2、在该namespace下创建一个deployment(env中设置了mysql的root用户的密码为mysql)

(1)编写deployment的对应yaml文件: mysql-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-deployment
  namespace: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.6
        imagePullPolicy: IfNotPresent
        args:
          - "--ignore-db-dir=lost+found"
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "mysql"

 

(2)创建deployment

kubectl create -f mysql-deployment.yaml --record

 

3、deployment自动部署好replicaSet和pod

执行一下命令可以查看test namespace 下自动部署好replicaSet和pod

kubectl get rs -n test

kubectl get pod -n test

4、创建对应服务(注意定义type=NodePort,并对应的nodeport端口号,以便集群外访问该服务)

(1)创建对应的service的yaml文件:mysql-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: mysql-svc
  namespace: test
  labels:
    name: mysql-svc
spec:
  type: NodePort
  ports:
  - port: 3306
    protocol: TCP
    targetPort: 3306
    name: http
    nodePort: 33306
  selector:
    app: mysql
 

(2)创建对应的service

kubectl create -f mysql-svc.yaml --record

5、验证是否成功

在远程客户端上下载mysql客户端Navicat,进行验证

其中

主机:service对应的pod所在的node的ip

端口:上面service中的nodeport端口号

密码:deployment文件env中设置的root用户的密码)

k8s集群上部署mysql服务实践_第1张图片

你可能感兴趣的:(k8s)