部署配置mysql

root@k8s-master01:~/nacos-jiqun# cat mysql.yaml
apiVersion: v1
kind: Service
metadata:
  name: mysql-nacos
  namespace: nacos
spec:
  ports:
  - port: 3306
    name: mysql
  clusterIP: None
  selector:
    app: mysql-nacos

---

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql-nacos
  namespace: nacos
spec:
  selector:
    matchLabels:
      app: mysql-nacos
  serviceName: "mysql-nacos"
  template:
    metadata:
      labels:
        app: mysql-nacos
    spec:
      containers:
      - name: mysql
        image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:5.7.44
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "1qaz@WSX"
        ports:
        - containerPort: 3306
        volumeMounts:
          - name: mysql-nacos-pvc
            mountPath: "/var/lib/mysql"

  volumeClaimTemplates:
  - metadata:
      name: mysql-nacos-pvc
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: "nfs-client"
      resources:
        requests:
          storage: 10Gi

进入容器配置mysql

[root@master01 nacos]# kubectl  -n nacos exec  -it mysql-nacos-0 -- sh
# mysql -uroot -p123456
mysql> CREATE DATABASE nacos;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'nacos'@'%' IDENTIFIED BY '123123';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL PRIVILEGES ON nacos.* TO 'nacos'@'%' ;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

导入sql

mysql -unacos -p'123123' nacos < mysql-schema.sql

部署nacos

[root@master01 nacos]# cat nacos.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "10"
  labels:
    k8s.kuboard.cn/name: nacos
  name: nacos
  namespace: nacos
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/name: nacos
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s.kuboard.cn/name: nacos
    spec:
      containers:
      - env:
        - name: MYSQL_SERVICE_HOST #数据库地址
          value: "mysql-nacos.nacos.svc.cluster.local"
        - name: MYSQL_SERVICE_PORT #数据库端口
          value: "3306"
        - name: MYSQL_SERVICE_DB_NAME #数据库名字
          value: "nacos"
        - name: MYSQL_SERVICE_USER #数据库用户
          value: "nacos"
        - name: MYSQL_SERVICE_PASSWORD  #数据库密码
          value: "123123"
        - name: MODE  #nacos部署模式为单机
          value: "standalone"
        - name: SPRING_DATASOURCE_PLATFORM
          value: "mysql"
        - name: NACOS_AUTH_ENABLE #开启鉴权
          value: "true"
        - name: NACOS_AUTH_CACHE_ENABLE #开启鉴权
          value: "true"
        - name: NACOS_AUTH_TOKEN  #默认的token生产环境需要更改,32位的Base64编码
          value: "SecretKey012345678901234567890123456789012345678901234567890123456789"
        - name: NACOS_AUTH_IDENTITY_KEY  #鉴权key
          value: "nacos"
        - name: NACOS_AUTH_IDENTITY_VALUE #鉴权值
          value: "nacos"
        image: nacos/nacos-server:v2.3.2
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /nacos/actuator/health
            port: 8848
            scheme: HTTP
          initialDelaySeconds: 10
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        resources:
            limits:
              cpu: 2000m
              memory: "4Gi"
            requests:
              cpu: 2000m
              memory: "2Gi"
        name: nacos-new
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /nacos/actuator/health
            port: 8848
            scheme: HTTP
          initialDelaySeconds: 10
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /etc/localtime
          type: ""
        name: localtime
---
apiVersion: v1
kind: Service
metadata:
  labels:
    k8s.kuboard.cn/name: nacos
  name: nacos
  namespace: nacos
spec:
  ports:
  - port: 8848
    protocol: TCP
    name: http-web
    targetPort: 8848
  - port: 9848
    protocol: TCP
    name: client-rpc
    targetPort: 9848
  - port: 9849
    protocol: TCP
    name: raft-rpc
    targetPort: 9849
  - port: 7848
    protocol: TCP
    name: old-raft-rpc
    targetPort: 7848
  selector:
    k8s.kuboard.cn/name: nacos
  sessionAffinity: None
  type: ClusterIP

创建nodeip暴露到公网:

[root@master01 nacos]# cat nodeip-svc.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    k8s.kuboard.cn/name: nacos
  name: nacos-nodeport
  namespace: nacos
spec:
  ports:
  - port: 8848
    protocol: TCP
    targetPort: 8848
  selector:
    k8s.kuboard.cn/name: nacos
  type: NodePort

查看部署的资源:

[root@master01 nacos]# kubectl get all -n nacos
NAME                         READY   STATUS    RESTARTS   AGE
pod/mysql-nacos-0            1/1     Running   0          16m
pod/nacos-5f45f4b58d-zh97h   1/1     Running   0          7m37s

NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                               AGE
service/mysql-nacos      ClusterIP   None             <none>        3306/TCP                              20m
service/nacos            ClusterIP   10.101.166.168   <none>        8848/TCP,9848/TCP,9849/TCP,7848/TCP   73s
service/nacos-nodeport   NodePort    10.106.171.99    <none>        8848:31587/TCP                        33s

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nacos   1/1     1            1           7m37s

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/nacos-5f45f4b58d   1         1         1       7m37s

NAME                           READY   AGE
statefulset.apps/mysql-nacos   1/1     20m

游览器访问nacos

img

输入用户和密码: nacos,nacos

创建配置测试是否可用

img

创建成功,部署完成

results matching ""

    No results matching ""