kubernetes部署nacos集群

本次部署采用nfs作为存储

每个pod有独立存储通过变量实现 subPathExpr: logs/$(POD_NAME)

clusterIP: none  # 表示这是一个headless service

---
apiVersion: v1
kind: PersistentVolume
metadata:
   name: pv-nacos
spec:
   capacity:
       storage: 10Gi
   volumeMode: Filesystem
   accessModes:
     - ReadWriteOnce
   persistentVolumeReclaimPolicy: Retain
   storageClassName: nfs-nacos
   nfs:
      path: /data/nfs-volumes/nacos
      server: 10.0.0.77
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
   name:  nacos-claim
   namespace: kube-public
spec:
   accessModes:
     - ReadWriteOnce
   volumeMode: Filesystem
   resources:
     requests:
       storage: 10Gi
   storageClassName: nfs-nacos
---
apiVersion: v1
kind: Service
metadata:
  name: nacos-headless
  labels:
    app: nacos
  annotations:
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
  ports:
    - port: 8848
      name: server
      targetPort: 8848
  clusterIP: None
  selector:
    app: nacos
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: nacos
  namespace: kube-public
spec:
  serviceName: nacos-headless
  replicas: 3
  selector:
    matchLabels:
      app: nacos
  template:
    metadata:
      labels:
        app: nacos
    spec:
      containers:
      - name: nacos
        image: nacos/nacos-server:2.0.3
        imagePullPolicy: IfNotPresent
        resources:
            limits:
              cpu: 1000m
              memory: 1000Mi
            requests:
              cpu: 500m
              memory: 512Mi
        env:
         - name: POD_NAME
           valueFrom:
             fieldRef:
              apiVersion: v1
              fieldPath: metadata.name 
         - name: NACOS_SERVERS
           value: nacos-0.nacos-headless.kube-public.svc.cluster.local:8848 nacos-1.nacos-headless.kube-public.svc.cluster.local:8848 nacos-2.nacos-headless.kube-public.svc.cluster.local:8848
         - name: MYSQL_SERVICE_HOST
           value: mariadb.kube-public.svc.cluster.local
         - name: MYSQL_SERVICE_PORT
           value: "3306"
         - name: MYSQL_SERVICE_USER
           value: root
         - name: MYSQL_SERVICE_PASSWORD
           value: "123456"
         - name: MYSQL_SERVICE_DB_NAME
           value: nacos_config
        ports:
        - name: http 
          containerPort: 8848
          protocol: TCP
        - name: rpc
          containerPort: 9848
          protocol: TCP
        volumeMounts:
        - mountPath: /home/nacos/logs
          subPathExpr: logs/$(POD_NAME)
          name: data

      imagePullSecrets:
      - name: harbor-secret
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: nacos-claim



实现Nginx 4层反代实现

    upstream backend-nacos {
        server nacos-0.nacos-headless.kube-public.svc.cluster.local:8848;
    }

部署结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒云客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值