K8S 部署 nacos

22 篇文章 0 订阅

镜像仓库地址:https://hub.docker.com/r/nacos/nacos-server

 
配置文件

  • ClusterIP-Service:暴露 8848 端口,用于 pod 间访问
  • headless-Service:暴露 8848 端口,service 访问
  • ConfigMap:定义的环境变量,这里主要定义 nacos 数据库具体参数
  • StatefulSet:在这里定义 nacos 主要配置,包括存储大小,存储方式,参数引用等
  • Ingress:通过域名暴露服务
---
apiVersion: v1
kind: Service
metadata:
  name: nacos-headless
  labels:
    app: nacos
spec:
  ports:
    - port: 8848
      name: server
      targetPort: 8848
  selector:
    app: nacos
---
apiVersion: v1
kind: Service
metadata:
  name: nacos
  labels:
    app: nacos
spec:
  ports:
    - port: 8848
      name: server
      targetPort: 8848
  selector:
    app: nacos
  type: ClusterIP
---

apiVersion: v1
kind: ConfigMap
metadata:
  name: nacos-cm
data:
  MYSQL_SERVICE_HOST: "mysql-primary-headless.mysql.svc.cluster.local"
  MYSQL_SERVICE_DB_NAME: "nacos"
  MYSQL_SERVICE_USER: "root"
  MYSQL_SERVICE_PASSWORD: "xxxxxxx"
  MODE: "standalone"
  SPRING_DATASOURCE_PLATFORM: "mysql"
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: nacos
spec:
  serviceName: nacos-headless
  replicas: 1
  selector:
    matchLabels:
      app: nacos
  template:
    metadata:
      labels:
        app: nacos
    spec:
      containers:
        - name: nacos
          imagePullPolicy: Always
          image: nacos/nacos-server
          ports:
            - containerPort: 8848
              name: client
          env:
            - name: MYSQL_SERVICE_HOST
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: MYSQL_SERVICE_HOST
            - name: MYSQL_SERVICE_DB_NAME
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: MYSQL_SERVICE_DB_NAME
            - name: MYSQL_SERVICE_USER
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: MYSQL_SERVICE_USER
            - name: MYSQL_SERVICE_PASSWORD
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: MYSQL_SERVICE_PASSWORD
            - name: MODE
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: MODE
            - name: SPRING_DATASOURCE_PLATFORM
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: SPRING_DATASOURCE_PLATFORM
          volumeMounts:
            - name: datadir
              mountPath: /home/nacos/data
            - name: logdir
              mountPath: /home/nacos/logs
  volumeClaimTemplates:
    - metadata:
        name: datadir
      spec:
        accessModes: [ "ReadWriteMany" ]
        resources:
          requests:
            storage: 5Gi
        storageClassName: nfs-client
        volumeMode: Filesystem
    - metadata:
        name: logdir
      spec:
        accessModes: [ "ReadWriteMany" ]
        resources:
          requests:
            storage: 2Gi
        storageClassName: nfs-client
        volumeMode: Filesystem
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-nacos
spec:
  ingressClassName: nginx
  rules:
    - host: nacos.gd-njc.com
      http:
        paths:
          - backend:
              service:
                name: nacos
                port:
                  number: 8848
            path: /
            pathType: ImplementationSpecific

SPRING_DATASOURCE_PLATFORM :若不填,则默认创建内部数据库,若需使用外部数据库,填 mysql

部署命令

kubectl apply -f .

报错

Unknown column ‘encrypted_data_key’

原因

  • 2.1.0版本config_info表中新增字段encrypted_data_key
  • 2.1.0版本config_info_beta表中新增字段encrypted_data_key
  • 2.1.0版本his_config_info表中新增字段encrypted_data_key

解决方案有以下两个

1、新增字段,数据库执行一下sql

ALTER TABLE nacos.config_info ADD encrypted_data_key TEXT NOT NULL;
ALTER TABLE nacos.config_info_beta ADD encrypted_data_key TEXT NOT NULL;
ALTER TABLE nacos.his_config_info ADD encrypted_data_key TEXT NOT NULL;

2、降低 nacos 版本为 2.0.0

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值