kuboard如何部署nacos?

这个快速开始手册是帮忙您快速在您的电脑上,下载、安装并使用 Nacos。
项目包含一个可构建的Nacos Docker Image,旨在利用StatefulSets在Kubernetes上部署Nacos。

在高级使用中,Nacos在K8S拥有自动扩容缩容和数据持久特性,请注意如果需要使用这部分功能请使用PVC持久卷,Nacos的自动扩容缩容需要依赖持久卷,以及数据持久化也是一样,本例中使用的是NFS来使用PVC.

nacos官网传送门-https://nacos.io/zh-cn/

NFS 如何部署请参见本博客下的另一篇文章:
Linux-centos上如何配置管理NFS服务器?

各种工作准备就绪请参考一下内容。

快速开始

基本信息

名称
工作负载名称nacos
工作负载类型有状态副本集(StatefulSet)
工作负载分层持久层
副本数1

在这里插入图片描述

容器信息

名称
容器名称nacos
容器镜像nacos/nacos-server
工作负载分层持久层
环境变量1MODE=standalone
环境变量2PREFER_HOST_MODE=hostname
环境变量3SPRING_DATASOURCE_PLATFORM = mysql
环境变量4MYSQL_SERVICE_DB_NAME=nacos_dev
环境变量5MYSQL_SERVICE_PORT=3306
环境变量6MYSQL_SERVICE_USER=nacos
环境变量7MYSQL_SERVICE_PASSWORD=nacos
环境变量8MYSQL_SERVICE_HOST=nacos-mysql

在这里插入图片描述

容器端口

单节点启动
1)防火墙放开8848端口

集群启动
1)防火墙放开8848端口
2)放开集群通信端口

  1. A:raft-rpc 7848
  2. 当nacos客户端升级为2.x版本后,新增了gRPC的通信方式,新增了两个端口。这两个端口在nacos原先的端口上(默认8848),进行一定偏移量自动生成.。

端口 与主端口的偏移量 描述
9848 1000 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
9849 1001 服务端gRPC请求服务端端口,用于服务间同步等
如果nacos版本为2.0以上,不放开gRPC通信端口会狂刷日志。

描述端口号是否必须
Nacos集群通信端口7848
Nacos的HTTP API端口号,用于通过HTTP接口与Nacos进行交互8848
Nacos的gRPC API端口号,用于通过gRPC接口与Nacos进行交互9848
Nacos的WebSocket API端口号,用于通过WebSocket与Nacos进行交互9849
命名服务的端口号,提供服务发现、配置管理、流量路由等功能5800-
命名服务的高可用版,提供与5800相同的功能,同时支持多数据中心和主备节点。7800-

在这里插入图片描述

健康检查

容器启动检查探针
#HttpGet
#端口号-8848
#路径- /nacos/v1/ns/instance/list?serviceName=nacos
#Pod 所在节点上的 kubelet 将对如下地址执行 httpGet
#http://${podIP}:8848/nacos/v1/ns/instance/list?serviceName=nacos

在这里插入图片描述

容器存活检查探针

在这里插入图片描述

容器就绪检查探针

在这里插入图片描述

存储挂载(NFS)

在这里插入图片描述
在这里插入图片描述

高级设置

在这里插入图片描述

服务/应用路由

在这里插入图片描述
在这里插入图片描述
图粘的差不多了,大佬们都应该清楚了吧。
还没完 yaml 代码如下:

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: nacos
  name: nacos
  namespace: sca-dev
  resourceVersion: '1492325'
spec:
  podManagementPolicy: Parallel
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: db
      k8s.kuboard.cn/name: nacos
  serviceName: nacos
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s.kuboard.cn/layer: db
        k8s.kuboard.cn/name: nacos
    spec:
      containers:
        - env:
            - name: MODE
              value: standalone
            - name: PREFER_HOST_MODE
              value: hostname
            - name: SPRING_DATASOURCE_PLATFORM
              value: mysql
            - name: MYSQL_SERVICE_DB_NAME
              value: nacos_dev
            - name: MYSQL_SERVICE_PORT
              value: '3306'
            - name: MYSQL_SERVICE_USER
              value: nacos
            - name: MYSQL_SERVICE_PASSWORD
              value: nacos
            - name: MYSQL_SERVICE_HOST
              value: nacos-mysql
          image: nacos/nacos-server
          imagePullPolicy: IfNotPresent
          livenessProbe:
            failureThreshold: 3
            httpGet:
              path: /nacos/v1/ns/instance/list?serviceName=nacos
              port: 8848
              scheme: HTTP
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 1
          name: nacos
          ports:
            - containerPort: 8848
              protocol: TCP
            - containerPort: 9848
              protocol: TCP
            - containerPort: 9849
              protocol: TCP
            - containerPort: 7848
              name: raft
              protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /nacos/v1/ns/instance/list?serviceName=nacos
              port: 8848
              scheme: HTTP
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 2
            timeoutSeconds: 1
          resources:
            limits:
              memory: 2Gi
            requests:
              memory: 200Mi
          startupProbe:
            failureThreshold: 20
            httpGet:
              path: /nacos/v1/ns/instance/list?serviceName=nacos
              port: 8848
              scheme: HTTP
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 1
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /home/nacos/logs
              name: nocoslogs
            - mountPath: /home/nacos/init.d/custom.properties
              name: volume-6kep4
              subPath: custom.properties
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
        - name: nocoslogs
          nfs:
            path: /mnt/nacoslogs
            server: 10.0.2.210
        - configMap:
            defaultMode: 420
            items:
              - key: custom.properties
                path: custom.properties
            name: nacos-config
          name: volume-6kep4
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate

---
apiVersion: v1
kind: Service
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: nacos
  name: nacos
  namespace: sca-dev
  resourceVersion: '1492138'
spec:
  clusterIP: 10.233.53.225
  clusterIPs:
    - 10.233.53.225
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: nacos-client
      nodePort: 31100
      port: 8848
      protocol: TCP
      targetPort: 8848
    - name: raft
      nodePort: 30100
      port: 7848
      protocol: TCP
      targetPort: 7848
    - name: grcp1
      nodePort: 32100
      port: 9848
      protocol: TCP
      targetPort: 9848
    - name: grpc1
      nodePort: 32101
      port: 9849
      protocol: TCP
      targetPort: 9849
  selector:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: nacos
  sessionAffinity: ClientIP
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10800
  type: NodePort


搞定:一波三联 关注+收藏!给大神双手膜拜!

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐