部署环境:
- ubuntu20.04
- docker version 20.10.12
- k8s version 1.23.1
- kubeadm 一主两从
本篇主要参考nacos官方k8s配置文档的配置顺序,配置文件。
废话不多说直接开肝。
虚拟机上需要nfs
安装nfs
#本篇所有执行的命令都是在root用户下操作
#安装命令,master节点 node节点都需要安装
apt-get install nfs-kernel-server -y
#重启命令
service nfs-kernel-server restart
第一大步配置NFS-Client Provisioner,目的是为之后进行nacos扩容的时候自动申请pvc、pv,省去了每次nacos扩缩容时需要人为的创建pvc、pv的时间。
创建角色,执行rbac.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: nfs-client-provisioner-runner
rules:
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: [""]
resources: ["endpoints"]
verbs: ["get", "list", "watch", "create", "update", "patch"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["events"]
verbs: ["create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: run-nfs-client-provisioner
subjects:
- kind: ServiceAccount
name: nfs-client-provisioner
namespace: default
roleRef:
kind: ClusterRole
name: nfs-client-provisioner-runner
apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: leader-locking-nfs-client-provisioner
rules:
- apiGroups: [""]
resources: ["endpoints"]
verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: leader-locking-nfs-client-provisioner
subjects:
- kind: ServiceAccount
name: nfs-client-provisioner
# replace with namespace where provisioner is deployed
namespace: default
roleRef:
kind: Role
name: leader-locking-nfs-client-provisioner
apiGroup: rbac.authorization.k8s.io
在执行deployment.yaml文件之前需要创建pv,pvc,官方文档没有给出,需要自己创建。
在创建pv,pvc之前需要先在nfs上暴露文件,以及文件的读写权限
#只需要master节点上操作一次就可以了。
#创建文件,文件地址随意,自己找得到就行
mkdir /root/data/nacos
#赋予权限
chmod 777 /root/data/nacos
#在nfs中添加要暴露的文件及其读写权限
gedit /etc/exports 或者 vi /etc/exports
#在开的文件中添加要暴露的文件位置及其读写权限
/root/data/nacos *(insecure,rw,async,no_root_squash)
#保存之后重启nfs服务,一定要记得重启
service nfs-kernel-server restart
部署NFS
先准备