kubernetes部署nacos2.3.0

 一、nacos简介

nacos官网地址

简单易用

     动态配置管理、服务发现和动态的一站式解决方案,20多种开箱即用的以服务为中心的架构特性,基本符合生产要求的轻量级易用控制台。

更适应云架构

      无缝支持 Kubernetes 和 Spring Cloud,在主流公共云上更容易部署和运行(例如阿里云和 AWS ),多租户和多环境支持。

生产等级

       脱胎于历经阿里巴巴10年生产验证的内部产品,支持具有数百万服务的大规模场景,具备企业级SLA的开源产品。

丰富的应用场景

       支持限流、大促销预案和异地多活,直接支持或稍作扩展即可支持大量有用的互联网应用场景
流量调度和服务治理。

二、部署

部署基本环境

kubernetes版本v1.26.3-aliyun.1 edge版本

nacos版本v1.26.3-aliyun.1

内核 3.10.0

部署nfs

# 创建角色
kubectl create -f deploy/nfs/rbac.yaml

# 变更配置 deploy/nfs/deployment.yaml
    29            env:
    30              - name: PROVISIONER_NAME
    31                value: fuseim.pri/ifs
    32              - name: NFS_SERVER
    33                value: # nfs-server地址  # 变更nfsserver的IP地址
    34              - name: NFS_PATH
    35                value: /data/nfs-share  # 挂载的路径
    36        volumes:
    37          - name: nfs-client-root
    38            nfs:
    39              server: # nfs-server地址  # 变更nfsserver的IP地址
    40              path: /data/nfs-share   # 挂载的路径


# 创建 ServiceAccount 和部署 NFS-Client Provisioner
kubectl create -f deploy/nfs/deployment.yaml

# 创建 NFS StorageClass
kubectl create -f deploy/nfs/class.yaml

# 验证NFS部署成功
kubectl get pod -l app=nfs-client-provisioner

部署MySQL

# 变更配置 deploy/mysql/mysql-nfs.yaml
    34        - name: mysql-data
    35          nfs:
    36            server: # nfs-server地址   # 根据nfs的serverIP地址
    37            path: /data/mysql       # 挂载的路径

# 创建数据库
kubectl create -f deploy/mysql/mysql-nfs.yaml

# 验证数据库是否正常工作
kubectl get pod 
NAME                         READY   STATUS    RESTARTS   AGE
mysql-gf2vd                        1/1     Running   0          111m

执行数据库初始化语句

数据库初始化语句位置 ​​​​​​https://github.com/alibaba/nacos/blob/develop/distribution/conf/mysql-schema.sql

 变更MySQL配置

# deploy/nacos/nacos-pvc-nfs.yaml  # 这里也可以使用默认配置
data:
  mysql.host: "数据库地址"
  mysql.db.name: "数据库名称"
  mysql.port: "端口"
  mysql.user: "用户名"
  mysql.password: "密码"

存储要求

   152        spec:
   153          accessModes: [ "ReadWriteMany" ]
   154          resources:
   155            requests:
   156              storage: 20Gi  # 这里存储需要满足至少20G

创建 Nacos

kubectl create -f deploy/nacos/nacos-pvc-nfs.yaml

pvc和pv关联

# 部署后观察pod状态是Pending 这里需要进行存储关联
]# kubectl get pod -l app=nacos
NAME      READY   STATUS    RESTARTS   AGE
nacos-0   0/1     Pending   0          8s
nacos-1   0/1     Pending   0          8s
nacos-2   0/1     Pending   0          8s

# 创建pv
cat nacos-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nacos00-pv   #这里和上面对应好创建三个
spec:
  capacity:
    storage: 50Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: managed-nfs-storage
  nfs:
    path: /data/k8s/变量  # 这里三个节点需要使用三个文件夹
    server: # nfs-server地址

# 变更三次,创建三个pv
kubectl create -f nacos-pv.yaml

# 查看pvc和pv的关联情况如果这里没有关联成功 Pod也不会成功
]# kubectl get pvc
NAME           STATUS   VOLUME       CAPACITY   ACCESS MODES   STORAGECLASS          AGE
data-nacos-0   Bound    nacos00-pv   50Gi       RWX            managed-nfs-storage   3m15s
data-nacos-1   Bound    nacos01-pv   50Gi       RWX            managed-nfs-storage   3m15s
data-nacos-2   Bound    nacos02-pv   50Gi       RWX            managed-nfs-storage   3m15s
]# kubectl get pv
NAME         CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                  STORAGECLASS          REASON   AGE
nacos00-pv   50Gi       RWX            Retain           Bound    default/data-nacos-0   managed-nfs-storage            4m24s
nacos01-pv   50Gi       RWX            Retain           Bound    default/data-nacos-1   managed-nfs-storage            4m11s
nacos02-pv   50Gi       RWX            Retain           Bound    default/data-nacos-2   managed-nfs-storage            4m4s

# 查看nacos的pod
kubectl get pod -l app=nacos
NAME      READY   STATUS    RESTARTS   AGE
nacos-0   1/1     Running   0          19h
nacos-1   1/1     Running   0          19h
nacos-2   1/1     Running   0          19h

对外暴漏nacos

# nacos-nodeport-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: nacos-nodeport
spec:
  type: NodePort
  ports:
    - name: http
      port: 8848   # 可以选择其他端口
      targetPort: 8848
      nodePort: 30000  # 选择一个合适的 NodePort
  selector:
    app: nacos  

# 创建nodePort
kubectl create -f nacos-nodeport-service.yaml

# kubectl get svc  # 查看svc
nacos-nodeport   NodePort    10.245.209.147           8848:30000/TCP                        3s

三、访问nacos

访问 http://宿主机IP地址:30000

kubernetes部署nacos2.3.0_第1张图片

你可能感兴趣的:(kubernetes,kubernetes)