先两名目标:在K8s集群中搭建3个nacos服务,构成高可用集群。
给出官方的文档,地址,根据这个方式大致可以搭建出来,但是有些细节他上面没有。下面不如正题。
官方链接:https://github.com/nacos-group/nacos-k8s/blob/master/README-CN.md

这里说明一下,官方给出了两种方式去搭建集权其中一种是快速搭建方式,另一种是集群搭建方式。对于快速搭建这里不再赘述,执行一个脚本就可以了。
但是快速搭建的劣势是数据没有持久化,可能会出现数据集丢失的问题,搭建三台构成一个集群,做到高可用,数据放入mysql数据库,才是生产环境必须要使用的方式,所以这里使用第二种搭建高可用的nacos集权,注意实在k8s集群上搭建。

即在这个k8s集群上搭建nacos集群。

1.下载代码(代码中自带执行脚本的)


具体怎么下载不在赘述了啊!
下载之后,上传代码到ip:61的服务器上,待用。

2. 部署 NFS

2.1. 为什么要部署nfs呢?什么是nfs呢?

在高级使用中,Nacos在K8S拥有自动扩容缩容和数据持久特性,请注意如果需要使用这部分功能请使用PVC持久卷,Nacos的自动扩容缩容需要依赖持久卷,以及数据持久化也是一样,本例中使用的是NFS来使用PVC。也就是说nacos是有状态服务,需要持久化磁盘存储数据。
NFS:Network File System(NFS),网络文件系统,存储数据的硬盘。

2.2. 这个nfs服务部署在哪里?

可以部署在这样一台机器上,可以和上面的k8s集群通讯,这里选择ip:61作为nfs的部署服务,你也可以选在ip:100等,只要能通就可以。

2.3 安装nfs

  1. 确认是否安装nfs
[root@master-01 nacos-k8s]# rpm -qa nfs-utils rpcbind
nfs-utils-1.3.0-0.68.el7.x86_64
rpcbind-0.2.0-49.el7.x86_64

我的是已经安装过的,如果没有安装,请安装

  1. 安装过程:
# 服务端 ip:61机器上
$ yum install -y nfs-utils rpcbind# 客户端 其他6台机器上均需要安装这个服务
$ yum install -y nfs-utils
  1. 创建共享文件夹/data/nfs和/data/mysql,当然你可以自己选择位置
cd /data
mkdir nfs
mkdir mysql

nfs:为nfs共享文件的目录
mysql:为mysql数据文件目录

  1. 配置 /etc/exports文件,在此文件中写入如下内容
/data/nfs *(insecure,rw,async,no_root_squash)
/data/mysql *(insecure,rw,async,no_root_squash)

配置完成后需要时期生效:

exportfs -r

具体含义如下:

  1. 启动 RPC 服务
service rpcbind start
  1. 查看 NFS 服务项 rpc 服务器注册的端口列表
rpcinfo -p localhost

由于我写博客是已经关在的有其他服务,所有看到的多:

  1. 启动 NFS 服务
service nfs start
  1. 查看是否加载了/etc/exports中的配置:
showmount -e localhost


至此nfs部署完成

2.4 部署 NFS剩下部分

  1. 创建角色
kubectl create -f deploy/nfs/rbac.yaml

如果的K8S命名空间不是default,请在部署RBAC之前执行以下脚本(就不要执行上面的脚本了):

# Set the subject of the RBAC objects to the current namespace where the provisioner is being deployed
NS=$(kubectl config get-contexts|grep -e "^\*" |awk '{print $5}')
NAMESPACE=${NS:-default}
sed -i'' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/nfs/rbac.yaml
  1. 创建 ServiceAccount 和部署 NFS-Client Provisioner
kubectl create -f deploy/nfs/deployment.yaml

内容如下:

apiVersion: v1
kind: ServiceAccount
metadata:name: nfs-client-provisioner
---
kind: Deployment
apiVersion: apps/v1
metadata:name: nfs-client-provisioner
spec:replicas: 1strategy:type: Recreateselector:matchLabels:app: nfs-client-provisionertemplate:metadata:labels:app: nfs-client-provisionerspec:serviceAccount: nfs-client-provisionercontainers:- name: nfs-client-provisionerimage: 10.1.8.151:8082/library/nfs-client-provisioner:latestvolumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: fuseim.pri/ifs- name: NFS_SERVERvalue: 10.1.33.61 - name: NFS_PATHvalue: /data/nfsvolumes:- name: nfs-client-rootnfs:server: 10.1.33.61path: /data/nfs


关于怎么制作镜像可以参考博客:生产环境k8s环境执行yaml文件部署ingress服务镜像拉取不下来(所有其他的镜像拉取失败均可以使用此方案解决)解决方案之一

  1. 创建 NFS StorageClass
kubectl create -f deploy/nfs/class.yaml
  1. 验证NFS部署成功
kubectl get pod -l app=nfs-client-provisioner

3. 部署数据库

这个数据库就是记录nacos配置的数据库,做到持久化,就能保证安全了。

3.1 安装数据库

kubectl create -f deploy/mysql/mysql-nfs.yaml

代码,如下,有修改哦:

apiVersion: v1
kind: ReplicationController
metadata:name: mysqllabels:name: mysql
spec:replicas: 1selector:name: mysqltemplate:metadata:labels:name: mysqlspec:containers:- name: mysqlimage: 10.1.8.151:8082/nacos/nacos-mysql:5.7 ports:- containerPort: 3306volumeMounts:- name: mysql-datamountPath: /var/lib/mysql env:- name: MYSQL_ROOT_PASSWORDvalue: "root"- name: MYSQL_DATABASEvalue: "nacos_config"- name: MYSQL_USERvalue: "nacos"- name: MYSQL_PASSWORDvalue: "nacos"volumes:- name: mysql-datanfs:server: 10.1.33.61 path: /data/mysql
---
apiVersion: v1
kind: Service
metadata:name: mysqllabels:name: mysql
spec:ports:- port: 3306targetPort: 3306selector:name: mysql


3.2 验证数据库是否安装成功

kubectl get pod

3.3 建表

数据库初始化语句位置 https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql
如果库中没有这些表需要自己创建。

/** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at**      http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*//******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info   */
/******************************************/
CREATE TABLE `config_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(255) DEFAULT NULL,`content` longtext NOT NULL COMMENT 'content',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',`app_name` varchar(128) DEFAULT NULL,`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',`c_desc` varchar(256) DEFAULT NULL,`c_use` varchar(64) DEFAULT NULL,`effect` varchar(64) DEFAULT NULL,`type` varchar(64) DEFAULT NULL,`c_schema` text,PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_aggr   */
/******************************************/
CREATE TABLE `config_info_aggr` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(255) NOT NULL COMMENT 'group_id',`datum_id` varchar(255) NOT NULL COMMENT 'datum_id',`content` longtext NOT NULL COMMENT '内容',`gmt_modified` datetime NOT NULL COMMENT '修改时间',`app_name` varchar(128) DEFAULT NULL,`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_beta   */
/******************************************/
CREATE TABLE `config_info_beta` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`content` longtext NOT NULL COMMENT 'content',`beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_tag   */
/******************************************/
CREATE TABLE `config_info_tag` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',`tag_id` varchar(128) NOT NULL COMMENT 'tag_id',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`content` longtext NOT NULL COMMENT 'content',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_tags_relation   */
/******************************************/
CREATE TABLE `config_tags_relation` (`id` bigint(20) NOT NULL COMMENT 'id',`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',`nid` bigint(20) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`nid`),UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = group_capacity   */
/******************************************/
CREATE TABLE `group_capacity` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = his_config_info   */
/******************************************/
CREATE TABLE `his_config_info` (`id` bigint(64) unsigned NOT NULL,`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`data_id` varchar(255) NOT NULL,`group_id` varchar(128) NOT NULL,`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`content` longtext NOT NULL,`md5` varchar(32) DEFAULT NULL,`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,`src_user` text,`src_ip` varchar(50) DEFAULT NULL,`op_type` char(10) DEFAULT NULL,`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',PRIMARY KEY (`nid`),KEY `idx_gmt_create` (`gmt_create`),KEY `idx_gmt_modified` (`gmt_modified`),KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = tenant_capacity   */
/******************************************/
CREATE TABLE `tenant_capacity` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';CREATE TABLE `tenant_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`kp` varchar(128) NOT NULL COMMENT 'kp',`tenant_id` varchar(128) default '' COMMENT 'tenant_id',`tenant_name` varchar(128) default '' COMMENT 'tenant_name',`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';CREATE TABLE `users` (`username` varchar(50) NOT NULL PRIMARY KEY,`password` varchar(500) NOT NULL,`enabled` boolean NOT NULL
);CREATE TABLE `roles` (`username` varchar(50) NOT NULL,`role` varchar(50) NOT NULL,UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);CREATE TABLE `permissions` (`role` varchar(50) NOT NULL,`resource` varchar(255) NOT NULL,`action` varchar(8) NOT NULL,UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');

4 部署Nacos

4.1 修改depoly/nacos/nacos-pvc-nfs.yaml

  1. 先给出修改后的代码:
---
apiVersion: v1
kind: Service
metadata:name: nacos-headlesslabels:app: nacosannotations:service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:ports:- port: 8848name: servertargetPort: 8848- port: 7848name: rpctargetPort: 7848clusterIP: Noneselector:app: nacos
---
apiVersion: v1
kind: ConfigMap
metadata:name: nacos-cm
data:mysql.db.name: "nacos_config"mysql.port: "3306"mysql.user: "nacos"mysql.password: "nacos"
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: nacos
spec:serviceName: nacos-headlessreplicas: 3template:metadata:labels:app: nacosannotations:pod.alpha.kubernetes.io/initialized: "true"spec:affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: "app"operator: Invalues:- nacostopologyKey: "kubernetes.io/hostname"serviceAccountName: nfs-client-provisionerinitContainers:- name: peer-finder-plugin-installimage: 10.1.8.151:8082/nacos/nacos-peer-finder-plugin:1.0 imagePullPolicy: AlwaysvolumeMounts:- mountPath: "/home/nacos/plugins/peer-finder"name: plugindircontainers:- name: nacosimagePullPolicy: Alwaysimage: 10.1.8.151:8082/nacos/nacos-server:latest resources:requests:memory: "4Gi"cpu: "500m"ports:- containerPort: 8848name: client-port- containerPort: 7848name: rpcenv:- name: NACOS_REPLICASvalue: "3"- name: SERVICE_NAMEvalue: "nacos-headless"- name: DOMAIN_NAMEvalue: "cluster.local"- name: POD_NAMESPACEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.namespace- name: MYSQL_SERVICE_DB_NAMEvalueFrom:configMapKeyRef:name: nacos-cmkey: mysql.db.name- name: MYSQL_SERVICE_PORTvalueFrom:configMapKeyRef:name: nacos-cmkey: mysql.port- name: MYSQL_SERVICE_USERvalueFrom:configMapKeyRef:name: nacos-cmkey: mysql.user- name: MYSQL_SERVICE_PASSWORDvalueFrom:configMapKeyRef:name: nacos-cmkey: mysql.password- name: NACOS_SERVER_PORTvalue: "8848"- name: NACOS_APPLICATION_PORTvalue: "8848"- name: PREFER_HOST_MODEvalue: "hostname"volumeMounts:- name: plugindirmountPath: /home/nacos/plugins/peer-finder- name: datadirmountPath: /home/nacos/data- name: logdirmountPath: /home/nacos/logsvolumeClaimTemplates:- metadata:name: plugindirannotations:volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"spec:accessModes: [ "ReadWriteMany" ]resources:requests:storage: 5Gi- metadata:name: datadirannotations:volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"spec:accessModes: [ "ReadWriteMany" ]resources:requests:storage: 5Gi- metadata:name: logdirannotations:volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"spec:accessModes: [ "ReadWriteMany" ]resources:requests:storage: 5Giselector:matchLabels:app: nacos
  1. 注意修改的点;


4.2创建nacos

kubectl create -f nacos-k8s/deploy/nacos/nacos-pvc-nfs.yaml

4.3 验证Nacos节点启动成功

kubectl get pod -l app=nacos

5.页面怎样访问

查看nacos服务对外暴露的端口

kubectl get svc -o wide


你会发现此服务并没有对外暴露,也就是不是nodePort的部署方式,也就是所没法直接从浏览器访问他,那怎么办呢?
还记得我们部署的ingress-nginx吗?生产环境k8s环境执行yaml文件部署ingress服务镜像拉取不下来(所有其他的镜像拉取失败均可以使用此方案解决)解决方案之一

ingres的作用就是帮我们代理,然后转发服务的。

5.1 为nacos创建ingres代理

nacos-ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: nacos-ingressannotations:kubernetes.io/ingress.class: "nginx"
spec:rules:- host: www.nacos.com http:paths:- path: /nacosbackend:serviceName: nacos-headless servicePort: 8848 

执行下面命令就可以执行成功了

 kubectl apply -f nacos-ingress.yaml 

创建成功后怎么访问呢?
查看一下ingress对外暴露的端口:

 kubectl get svc -n ingress-nginx



我们可以访问:http://www.nacos.com:30358/nacos就可以访问成功:

4.4 解释下问什么可以访问成功

  1. 你访问www.nacos.com:30358/nacos的时候就会请求先到ingress

  2. ingress一看就会帮你转到nacos-headless服务的8848端口,你加上项目名字nacos就可以正常访问了。

6. 其他服务怎么注册上

这个前面我专门写过一篇来解释怎么注册到nacos上,不在重复造轮子:k8s集群内部怎么通过dns域名使得业务系统注册到nacos集群说明-方法论,其他通过域名访问服务一样的https://blog.csdn.net/fsjwin/article/details/110217895

7 如果需要刪除后重建则特别注意

7.1 pv删除

通过k8s 图形界面存储中删除,删除后红色中横线,并没有删除!

7.2使用命令查看是否删除完成

kubectl get pv

7.3使用命令删除重新创建即可

 kubectl patch pv pvc-122b45c0-78fb-4185-9a29-4b2f023ba25e  -p '{"metadata":{"finalizers":null}}'kubectl patch pv pvc-122b45c0-78fb-4185-9a29-4b2f023ba25e  -p '{"metadata":{"finalizers":null}}'kubectl patch pv pvc-122b45c0-78fb-4185-9a29-4b2f023ba25e  -p '{"metadata":{"finalizers":null}}'kubectl patch pv pvc-122b45c0-78fb-4185-9a29-4b2f023ba25e  -p '{"metadata":{"finalizers":null}}'kubectl patch pv pvc-122b45c0-78fb-4185-9a29-4b2f023ba25e  -p '{"metadata":{"finalizers":null}}'kubectl patch pv pvc-122b45c0-78fb-4185-9a29-4b2f023ba25e  -p '{"metadata":{"finalizers":null}}'kubectl patch pv pvc-122b45c0-78fb-4185-9a29-4b2f023ba25e  -p '{"metadata":{"finalizers":null}}'kubectl patch pv pvc-122b45c0-78fb-4185-9a29-4b2f023ba25e  -p '{"metadata":{"finalizers":null}}'kubectl patch pv pvc-122b45c0-78fb-4185-9a29-4b2f023ba25e  -p '{"metadata":{"finalizers":null}}'kubectl patch pv pvc-122b45c0-78fb-4185-9a29-4b2f023ba25e  -p '{"metadata":{"finalizers":null}}'

7.4 创建的过程

1.
先删除
kubectl delete  -f deploy/nfs/class.yaml
2.
kubectl create  -f deploy/nfs/class.yaml3. 删除ServiceAccount 和部署 NFS-Client Provisioner
kubectl delete -f deploy/nfs/deployment.yaml4. 创建ServiceAccount 和部署 NFS-Client Provisioner
kubectl create -f deploy/nfs/deployment.yaml5. 验证NFS部署成功
kubectl get pod -l app=nfs-client-provisioner6. 删除数据库
kubectl delete -f deploy/mysql/mysql-nfs.yaml7.安装数据库
kubectl create -f deploy/mysql/mysql-nfs.yaml8. 验证是否成功
kubectl get pod9. 建表
进入shell创建10.删除nacos集群
kubectl delete -f deploy/nacos/nacos-pvc-nfs.yaml11.创建nacos集群
kubectl create -f deploy/nacos/nacos-pvc-nfs.yaml

k8s(kubernetes)部署nacos(3各节点....N各节点均可以)集群相关推荐

  1. Kubernetes - - k8s - v1.12.3 动态存储管理GlusterFS及使用Heketi扩容GlusterFS集群

    1,准备工作 1.1 所有节点安装GFS客户端 yum install glusterfs glusterfs-fuse -y 1.2 如果不是所有节点要部署GFS管理服务,就在需要部署的节点上打上标 ...

  2. 【Nacos】源码之服务端AP架构集群节点的心跳检测

    当Nacos服务端启动时怎么知道集群中有哪些节点?当新的节点加入集群或者集群中有节点下线了,集群之间可以通过健康检查发现.健康检查的频率是怎么样的?节点的状态又是如何变动的?状态的变动又会触发什么动作 ...

  3. 边缘使用 K8s 门槛太高?OpenYurt 这个功能帮你快速搭建集群!

    OpenYurt 作为阿里巴巴首个开源的边缘云原生项目,涉及到边缘计算和云原生两个领域.然而,许多边缘计算的开发者并不熟悉云原生相关的知识.为了降低 OpenYurt 的使用门槛,帮助更多地开发者快速 ...

  4. openshift介绍及centos7安装单节点openshift、Redhat安装openshift集群完全教程

    Centos7中openshift_3.11单节点安装及配置开机自启详解 本次openshift安装使用最简单便捷的单节点安装,适用于本地开发及测试 openshift简介 OpenShift是红帽公 ...

  5. Redis Cluster节点服务器宕机后导致集群重启失败案例

    这里说下自己碰到的一种情况: redis cluster集群由三个节点服务器组成,一个6个redis实例,每个节点开启2个端口,三主三从. reids部署目录是/data/redis-4.0.1,集群 ...

  6. springBoot整合redis单节点、redis哨兵、redis集群配置及redisClient区别

    springBoot整合redis单节点.redis哨兵.redis集群配置,redisClient jedis lettuce 区别? 1.springboot 整合redis单机模式: sprin ...

  7. nacosk8s部署_在K8S中部署Nacos配置中心

    点击上方 蓝字 关注我们 服务注册和配置中心是运维工作中经常遇见的字眼,配置中心要实现的一个基本理念是配置修改的时效性.动态性.一致性:服务注册和发现是为了解耦服务之间的依赖关系和便于服务管理. 为什 ...

  8. k8s集群部署 | 二进制三节点(复用)高可用集群部署过程

    文章目录 1. 二进制部署三节点(复用)高可用 k8s 集群 1.1 环境规划阶段 1.1.1 实验架构图 1.1.2 系统版本说明 1.1.3 环境基本信息 1.1.4 k8s 网段划分 1.2 基 ...

  9. k8s集群部署 | 三节点(复用)高可用集群过程参考

    文章目录 1. kubeadm 部署三节点(复用)高可用 k8s 集群 1.1 环境规划阶段 1.1.1 实验架构图 1.1.2 系统版本说明 1.1.3 环境基本信息 1.1.4 k8s 网段划分 ...

  10. kubernetes怎么读_Kubernetes之有状态应用实践-搭建MySQL集群

    零.前情纪要 上一遍文章Kubernetes集群搭建已经带大家成功搭建了Kubernetes集群,可能有不少人在搭建过程中对很多概念性的东西还是很模糊,接下来这篇文章将通过带领大家一起搭建一个高可用的 ...

最新文章

  1. i-usb-storer android,i usb storer
  2. spring中AOP动态代理的两种方式
  3. 004-React入门概述
  4. 【二分】雪(luogu 7405)
  5. 二叉搜索树的删除操作可以交换吗_JavaScript数据结构 — 二叉搜索树(BST)ES6实现...
  6. 6-3 十进制转二进制(顺序栈设计和应用) (8 分)
  7. 2014.8坝上之一:在路上
  8. 为什么字节跳动、腾讯、阿里都在用 Python??
  9. c语言编程概念与观点,从程序设计本质入手,上好C语言第一课.doc
  10. ali 媒体转码签名生成-php
  11. 常见的windows 命令大全
  12. DX11与多线程渲染
  13. javascript实现单例模式
  14. Postman中文版 !!!!傻瓜教程
  15. 【合天网安】SQLi-Labs系列之数字型报错注入
  16. Android 自动化测试 Espresso篇:简介基础使用
  17. 多个PDF合并成一个PDF
  18. 达梦数据库使用方法(简)
  19. 钢铁侠的原型,oracle的创始人,天才企业家—拉里·埃里森
  20. redis高可用:keepalived+redis主从部署

热门文章

  1. Abbirb120型工业机器人_abb IRB120资料的具体介绍
  2. CTC束搜索解码原理和Pytorch实现(CTC Prefix BeamSearch Decode)
  3. 【物联网设计记录】基于机智云云平台的Wi-Fi控制开发板
  4. 常用的交易策略评价指标及计算
  5. 从飞猪智能酒店到优酷视频,探索阿里智能研发协同流程
  6. Spring Security技术栈学习笔记(十三)Spring Social集成第三方登录验证开发流程介绍
  7. GPT-4:不了不了,这些我还做不到
  8. BTrace-Java 线上问题排查神器
  9. 指纹锁的识别与原理及安全性
  10. [教你做小游戏] 《五子棋》怎么判断输赢?你能5分钟交出代码吗?