阿里云k8s有状态服务nacos 部署yaml文件配置

apiVersion: v1
kind: Service
metadata:
   name: nacos-headless
   namespace: rz-dt
   labels:
     app: nacos
   annotations:
     service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
   ports:
     - protocol: TCP
       port: 8848
       name: server
       targetPort: 8848
     - protocol: TCP
       port: 9848
       name: client-rpc
       targetPort: 9848
     - protocol: TCP
       port: 9849
       name: server-rpc
       targetPort: 9849
   clusterIP: None
   selector:
     app: nacos
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
   name: nacos
   namespace: rz-dt
spec:
   serviceName: nacos-headless
   replicas: 3
   template:
     metadata:
       labels:
         app: nacos
       annotations:
         pod.alpha.kubernetes.io/initialized: "true"
     spec:
       affinity:
         podAntiAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             - labelSelector:
                 matchExpressions:
                   - key: "app"
                     operator: In
                     values:
                       - nacos-headless
               topologyKey: "kubernetes.io/hostname"
       nodeSelector:
           rz_dt_nacos_node: rz-dt-nacos
       containers:
         - name: k8snacos
           imagePullPolicy: Always
           #v2.1.2可以重启nacos服务自动注册  2.0.3 不会自动注册服务, 对应库nacos_config
           image: nacos/nacos-server:v2.1.2
           resources:
             limits:
               cpu: 900m
               memory: 2Gi
             requests:
               cpu: 10m
               memory: 50Mi
           ports:
             - containerPort: 8848
               name: client-port
             - containerPort: 9848
               name: client-grpc
             - containerPort: 9849
               name: server-grpc
           env:
             - name: NACOS_REPLICAS
               value: "3"
             - name: MYSQL_SERVICE_HOST
               valueFrom:
                 configMapKeyRef:
                   name: nacos-cm
                   key: mysql.host
             - name: MYSQL_SERVICE_DB_NAME
               valueFrom:
                 configMapKeyRef:
                   name: nacos-cm
                   key: mysql.db.name
             - name: MYSQL_SERVICE_PORT
               valueFrom:
                 configMapKeyRef:
                   name: nacos-cm
                   key: mysql.port
             - name: MYSQL_SERVICE_USER
               valueFrom:
                 configMapKeyRef:
                   name: nacos-cm
                   key: mysql.user
             - name: MYSQL_SERVICE_PASSWORD
               valueFrom:
                 configMapKeyRef:
                   name: nacos-cm
                   key: mysql.password
             - name: MODE
               value: "cluster"
             - name: NACOS_SERVER_PORT
               value: "8848"
             - name: NACOS_APPLICATION_PORT
               value: "9848"
             - name: NACOS_APPLICATION_PORT
               value: "9849"
             - name: PREFER_HOST_MODE
               value: "hostname"
             - name: NACOS_SERVERS
               value: "nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848 nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848 nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848"
   selector:
     matchLabels:
       app: nacos
---
apiVersion: v1
kind: Service
metadata:
   name: nacos-service
   namespace: rz-dt
   annotations:
     nginx.ingress.kubernetes.io/affinity: "true"
     nginx.ingress.kubernetes.io/session-cookie-name: backend
     nginx.ingress.kubernetes.io/load-balancer-method: drr

spec:
   selector:
     app: nacos
   ports:
     - name: nacos-headless
       protocol: TCP
       port: 8848
       targetPort: 8848
       nodePort: 30048
     - name: nacos-rpc
       protocol: TCP
       port: 9848
       targetPort: 9848
       nodePort: 31048
     - name: nacos-grpc
       protocol: TCP
       port: 9849
       targetPort: 9849
       nodePort: 31049
   type: NodePort
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
   name: nacos-web
   namespace: rz-dt
spec:
   rules:
     - host: nacos.imvib.com
       http:
         paths:
           - path: /nacos
             backend:
               serviceName: nacos-service
               servicePort: 8848
---
apiVersion: v1
kind: ConfigMap
metadata:
   name: nacos-cm
   namespace: rz-dt
data:
   mysql.host: "rm-.mysql.rds.aliyuncs.com"
   mysql.db.name: "nacos_config"
   mysql.port: "3306"
   mysql.user: "real"
   mysql.password: "1234"



更多推荐