一、k8s节点及nacos库
master:192.168.91.166
node2:192.168.91.167
node3:192.168.91.168

K8s 集群:1 主 2 节点(k8s-master:192.168.91.166、node2:167、node3:168)
Nacos 镜像:swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:latest
Nacos 库存:192.168.91.165 ry-config

二、创建nacos集群
1、创建命名空间
kubectl create namespace nacos-cluster
2、创建nocos PV
2.1、 创建本地PV存储
##创建本地PV存储
kubectl apply -f nacos-pv.yaml
####查看 kubectl get pv


2.2、 nacos-pv.yaml内容
cat << 'EOF' > sentinel-dashboard-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: sentinel-dashboard
namespace: sentinel-dashboard-cluster
labels:
app: sentinel-dashboard
spec:
replicas: 3
selector:
matchLabels:
app: sentinel-dashboard
template:
metadata:
labels:
app: sentinel-dashboard
spec:
containers:
- name: sentinel-dashboard
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/bladex/sentinel-dashboard:1.8.9
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8858
name: web
- containerPort: 8719
name: client
env:
# dashboard登录账号密码
- name: USERNAME
value: "sentinel"
- name: PASSWORD
value: "sentinel"
# Nacos连接
- name: NACOS_ADDR
value: "nacos-headless.nacos-cluster.svc.cluster.local:8848"
# public保留命名空间 ID为空,禁止写"public"
- name: NACOS_NAMESPACE
value: ""
- name: NACOS_GROUP_ID
value: "DEFAULT_GROUP"
# Nacos鉴权账号密码
- name: NACOS_USERNAME
value: "nacos"
- name: NACOS_PASSWORD
value: "nacos"
resources:
limits:
cpu: "500m"
memory: "1Gi"
requests:
cpu: "300m"
memory: "512Mi"
readinessProbe:
httpGet:
path: /
port: web
initialDelaySeconds: 30
periodSeconds: 10
livenessProbe:
httpGet:
path: /
port: web
initialDelaySeconds: 60
periodSeconds: 15
EOF
3、创建nocos StatefulSet
nacos-cluster.yaml(无头 Service + StatefulSet 集群核心)
3.1、 创建本地StatefulSet
##创建本地StatefulSet
kubectl apply -f nacos-cluster.yaml
####查看 kubectl get pvc,pod,svc -n nacos-cluster
kubectl get pvc,pod ,svc -n nacos-cluster




3.2、 nacos-cluster.yaml内容
# 无头服务:集群内部节点通信专用
apiVersion: v1
kind: Service
metadata:
name: nacos-headless
namespace: nacos-cluster
labels:
app: nacos
spec:
selector:
app: nacos
ports:
- port: 8848
name: http
targetPort: 8848
- port: 9848
name: rpc
targetPort: 9848
- port: 7848
name: raft
targetPort: 7848
clusterIP: None
---
# 有状态副本集
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nacos
namespace: nacos-cluster
spec:
replicas: 3
selector:
matchLabels:
app: nacos
serviceName: nacos-headless
template:
metadata:
labels:
app: nacos
spec:
containers:
- name: nacos
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:latest
ports:
- containerPort: 8848
name: http
- containerPort: 9848
name: rpc
- containerPort: 7848
name: raft
env:
# 开启集群模式
- name: MODE
value: "cluster"
# 集群节点完整域名(适配nacos-cluster命名空间)
- name: NACOS_SERVERS
value: "nacos-0.nacos-headless.nacos-cluster.svc.cluster.local:8848,nacos-1.nacos-headless.nacos-cluster.svc.cluster.local:8848,nacos-2.nacos-headless.nacos-cluster.svc.cluster.local:8848"
# MySQL连接配置
- name: SPRING_DATASOURCE_PLATFORM
value: "mysql"
- name: MYSQL_SERVICE_HOST
value: "192.168.91.165"
- name: MYSQL_SERVICE_PORT
value: "3306"
- name: MYSQL_SERVICE_DB_NAME
value: "ry-config"
- name: MYSQL_SERVICE_USER
value: "root"
- name: MYSQL_SERVICE_PASSWORD
value: "root"
# 时区
- name: TZ
value: "Asia/Shanghai"
# 资源配额
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 1000m
memory: 1Gi
# 存储挂载
volumeMounts:
- name: nacos-data
mountPath: /home/nacos/plugins/raft/data
- name: nacos-logs
mountPath: /home/nacos/logs
# PVC自动生成模板
volumeClaimTemplates:
- metadata:
name: nacos-data
namespace: nacos-cluster
spec:
storageClassName: local-path
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
- metadata:
name: nacos-logs
namespace: nacos-cluster
spec:
storageClassName: local-path
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
4、创建nocos service
nacos-service.yaml(NodePort 外网访问入口)
4.1、 创建service(NodePort 外网访问入口)
##创建本地service
kubectl apply -f nacos-service.yaml
####查看 kubectl get svc -n nacos-cluster
kubectl get svc -n nacos-cluster


4.2、 nacos-service.yaml内容
apiVersion: v1
kind: Service
metadata:
name: nacos-nodeport
namespace: nacos-cluster
spec:
selector:
app: nacos
type: NodePort
ports:
- port: 8848
targetPort: 8848
nodePort: 30848 ##对外端口
name: web
5、nocos地址
http://192.168.91.168:30085/nacos/

浙公网安备 33010602011771号