本次部署采用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;
}
部署结果