部署配置mysql
root@k8s-master01:~/nacos-jiqun# cat mysql.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-nacos
namespace: nacos
spec:
ports:
- port: 3306
name: mysql
clusterIP: None
selector:
app: mysql-nacos
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql-nacos
namespace: nacos
spec:
selector:
matchLabels:
app: mysql-nacos
serviceName: "mysql-nacos"
template:
metadata:
labels:
app: mysql-nacos
spec:
containers:
- name: mysql
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:5.7.44
env:
- name: MYSQL_ROOT_PASSWORD
value: "1qaz@WSX"
ports:
- containerPort: 3306
volumeMounts:
- name: mysql-nacos-pvc
mountPath: "/var/lib/mysql"
volumeClaimTemplates:
- metadata:
name: mysql-nacos-pvc
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "nfs-client"
resources:
requests:
storage: 10Gi
进入容器配置mysql
[root@master01 nacos]# kubectl -n nacos exec -it mysql-nacos-0 -- sh
# mysql -uroot -p123456
mysql> CREATE DATABASE nacos;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE USER 'nacos'@'%' IDENTIFIED BY '123123';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON nacos.* TO 'nacos'@'%' ;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
导入sql
mysql -unacos -p'123123' nacos < mysql-schema.sql
部署nacos
[root@master01 nacos]# cat nacos.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "10"
labels:
k8s.kuboard.cn/name: nacos
name: nacos
namespace: nacos
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s.kuboard.cn/name: nacos
template:
metadata:
creationTimestamp: null
labels:
k8s.kuboard.cn/name: nacos
spec:
containers:
- env:
- name: MYSQL_SERVICE_HOST #数据库地址
value: "mysql-nacos.nacos.svc.cluster.local"
- name: MYSQL_SERVICE_PORT #数据库端口
value: "3306"
- name: MYSQL_SERVICE_DB_NAME #数据库名字
value: "nacos"
- name: MYSQL_SERVICE_USER #数据库用户
value: "nacos"
- name: MYSQL_SERVICE_PASSWORD #数据库密码
value: "123123"
- name: MODE #nacos部署模式为单机
value: "standalone"
- name: SPRING_DATASOURCE_PLATFORM
value: "mysql"
- name: NACOS_AUTH_ENABLE #开启鉴权
value: "true"
- name: NACOS_AUTH_CACHE_ENABLE #开启鉴权
value: "true"
- name: NACOS_AUTH_TOKEN #默认的token生产环境需要更改,32位的Base64编码
value: "SecretKey012345678901234567890123456789012345678901234567890123456789"
- name: NACOS_AUTH_IDENTITY_KEY #鉴权key
value: "nacos"
- name: NACOS_AUTH_IDENTITY_VALUE #鉴权值
value: "nacos"
image: nacos/nacos-server:v2.3.2
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /nacos/actuator/health
port: 8848
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
cpu: 2000m
memory: "4Gi"
requests:
cpu: 2000m
memory: "2Gi"
name: nacos-new
readinessProbe:
failureThreshold: 3
httpGet:
path: /nacos/actuator/health
port: 8848
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/localtime
name: localtime
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- hostPath:
path: /etc/localtime
type: ""
name: localtime
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s.kuboard.cn/name: nacos
name: nacos
namespace: nacos
spec:
ports:
- port: 8848
protocol: TCP
name: http-web
targetPort: 8848
- port: 9848
protocol: TCP
name: client-rpc
targetPort: 9848
- port: 9849
protocol: TCP
name: raft-rpc
targetPort: 9849
- port: 7848
protocol: TCP
name: old-raft-rpc
targetPort: 7848
selector:
k8s.kuboard.cn/name: nacos
sessionAffinity: None
type: ClusterIP
创建nodeip暴露到公网:
[root@master01 nacos]# cat nodeip-svc.yaml
apiVersion: v1
kind: Service
metadata:
labels:
k8s.kuboard.cn/name: nacos
name: nacos-nodeport
namespace: nacos
spec:
ports:
- port: 8848
protocol: TCP
targetPort: 8848
selector:
k8s.kuboard.cn/name: nacos
type: NodePort
查看部署的资源:
[root@master01 nacos]# kubectl get all -n nacos
NAME READY STATUS RESTARTS AGE
pod/mysql-nacos-0 1/1 Running 0 16m
pod/nacos-5f45f4b58d-zh97h 1/1 Running 0 7m37s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/mysql-nacos ClusterIP None <none> 3306/TCP 20m
service/nacos ClusterIP 10.101.166.168 <none> 8848/TCP,9848/TCP,9849/TCP,7848/TCP 73s
service/nacos-nodeport NodePort 10.106.171.99 <none> 8848:31587/TCP 33s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nacos 1/1 1 1 7m37s
NAME DESIRED CURRENT READY AGE
replicaset.apps/nacos-5f45f4b58d 1 1 1 7m37s
NAME READY AGE
statefulset.apps/mysql-nacos 1/1 20m
游览器访问nacos
输入用户和密码: nacos,nacos
创建配置测试是否可用
创建成功,部署完成