kubernetes 环境装置Nacos集群
1.nfs服务器配置
#所有k8s节点执行yum install -y nfs-utilsmkdir -p /usr/local/nacos/nfs-sharemkdir -p /usr/local/nacos/mysql-slavemkdir -p /usr/local/nacos/mysql-masterchmod a+rw /usr/local/nacos#增加nacos、mysql-master 、mysql-slave 长久化文件夹vi /etc/exports/usr/local/nacos/mysql-master *(insecure,rw,async,no_root_squash)/usr/local/nacos/mysql-slave *(insecure,rw,async,no_root_squash)/usr/local/nacos/nfs-share *(insecure,rw,async,no_root_squash)systemctl restart rpcbind.servicesystemctl restart nfs-server.serviceshowmount -e kipnode1
2.部署nfs
下载nacos k8s部署代码
git clone https://github.com/nacos-group/nacos-k8s.git
创立nacos 命名空间
kubectl create namespace nacos
创立角色
cd nacos-k8sNS=$(kubectl config get-contexts|grep -e "^\*" |awk '{print $5}')NAMESPACE=${NS:-nacos}sed -i'' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/nfs/rbac.yamlkubectl create -f deploy/nfs/rbac.yaml
创立 ServiceAccount
和部署 NFS-Client Provisioner
批改deployment.yaml
apiVersion: v1kind: ServiceAccountmetadata: name: nfs-client-provisioner---kind: DeploymentapiVersion: extensions/v1beta1metadata: name: nfs-client-provisionerspec: replicas: 1 strategy: type: Recreate template: metadata: labels: app: nfs-client-provisioner spec: serviceAccount: nfs-client-provisioner containers: - name: nfs-client-provisioner image: quay.io/external_storage/nfs-client-provisioner:latest volumeMounts: - name: nfs-client-root mountPath: /persistentvolumes env: - name: PROVISIONER_NAME value: fuseim.pri/ifs - name: NFS_SERVER value: kipnode1 - name: NFS_PATH value: /usr/local/nacos/nfs-share volumes: - name: nfs-client-root nfs: server: kipnode1 path: /usr/local/nacos/nfs-share
kubectl create -f deploy/nfs/deployment.yaml -n nacos
创立 NFS StorageClass
kubectl create -f deploy/nfs/class.yaml -n nacos
验证NFS部署胜利
kubectl get pod -l app=nfs-client-provisioner -n nacos
3.部署数据库
部署主库
批改 mysql-master-nfs.yaml nfs地位
apiVersion: v1kind: ReplicationControllermetadata: name: mysql-master labels: name: mysql-masterspec: replicas: 1 selector: name: mysql-master template: metadata: labels: name: mysql-master spec: containers: - name: master image: nacos/nacos-mysql-master:latest ports: - containerPort: 3306 volumeMounts: - name: mysql-master-data mountPath: /var/lib/mysql env: - name: MYSQL_ROOT_PASSWORD value: "root" - name: MYSQL_DATABASE value: "nacos_devtest" - name: MYSQL_USER value: "nacos" - name: MYSQL_PASSWORD value: "nacos" - name: MYSQL_REPLICATION_USER value: 'nacos_ru' - name: MYSQL_REPLICATION_PASSWORD value: 'nacos_ru' volumes: - name: mysql-master-data nfs: server: kipnode1 path: /usr/local/nacos/mysql-master---apiVersion: v1kind: Servicemetadata: name: mysql-master labels: name: mysql-masterspec: ports: - port: 3306 targetPort: 3306 selector: name: mysql-master
kubectl create -f deploy/mysql/mysql-master-nfs.yaml -n nacos
部署从库
批改 mysql-slave-nfs.yaml nfs地位
apiVersion: v1kind: ReplicationControllermetadata: name: mysql-slave labels: name: mysql-slavespec: replicas: 1 selector: name: mysql-slave template: metadata: labels: name: mysql-slave spec: containers: - name: slave image: nacos/nacos-mysql-slave:latest ports: - containerPort: 3306 volumeMounts: - name: mysql-slave-data mountPath: /var/lib/mysql env: - name: MYSQL_ROOT_PASSWORD value: "root" - name: MYSQL_REPLICATION_USER value: 'nacos_ru' - name: MYSQL_REPLICATION_PASSWORD value: 'nacos_ru' volumes: - name: mysql-slave-data nfs: server: kipnode1 path: /usr/local/nacos/mysql-slave---apiVersion: v1kind: Servicemetadata: name: mysql-slave labels: name: mysql-slavespec: ports: - port: 3306 targetPort: 3306 selector: name: mysql-slave
kubectl create -f deploy/mysql/mysql-slave-nfs.yaml -n nacos
4.部署Nacos
批改deploy/nacos/nacos-pvc-nfs.yaml 和数据库配置文件保持一致即可
data: mysql.master.db.name: "主库名称" mysql.master.port: "主库端口" mysql.slave.port: "从库端口" mysql.master.user: "主库用户名" mysql.master.password: "主库明码"
kubectl create -f deploy/nacos/nacos-pvc-nfs.yaml -n nacos
应用kubectl scale 对Nacos动静扩容
kubectl scale sts nacos --replicas=3 -n nacos
5.创立ingress
vi ingress/nacos-ingress.yaml
---# 创立Ingress,定义拜访规定 apiVersion: extensions/v1beta1 kind: Ingressmetadata: name: nacos-headlessspec: rules: - host: demo.nacos.com http: paths: - path: / backend: serviceName: nacos-headless servicePort: 8848
kubectl create -f nacos-ingress.yaml -n nacos
nacos后盾治理拜访地址:
http://demo.nacos.com/nacos
本文由博客群发一文多发等经营工具平台 OpenWrite 公布