- 如下图,一个集群有一个master和node节点
他们之间本身是没有任何关系的。
如下,我创建了2个集群,并且全部开机。
- 每个集群都是独立的提供服务,两者互不关联,一般情况, 我们管理多个集群都是通过ssh登陆到某一集群的master节点上做相关操作
做了多集群以后,就可以在某一master节点上管理另外的master节点,不用ssh登陆了。
- 我这2个集群配置是完全一样的,除了ip不一样,我下面就以这2个节点做出说明
主机名和ip如下
#集群1
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 5d2h v1.21.0
node1 Ready 5d2h v1.21.0
node2 Ready 5d1h v1.21.0
[root@master ~]#
[root@master ~]# ip a | grep 59
inet 192.168.59.142/24 brd 192.168.59.255 scope global noprefixroute dynamic ens33
[root@master ~]#
[root@master ~]# hostname
master
[root@master ~]#
#集群2
[root@master2 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 5d2h v1.21.0
node1 Ready 5d2h v1.21.0
node2 Ready 5d1h v1.21.0
[root@master2 ~]#
[root@master2 ~]# ip a | grep 59
inet 192.168.59.151/24 brd 192.168.59.255 scope global noprefixroute ens33
[root@master2 ~]#
[root@master2 ~]# hostname
master2
[root@master2 ~]#
===========================================================================================
-
默认的kubeconfig文件是 :
~./kube/config
-
查看现在kubeconfig文件命令:
kubectl config view
[root@master .kube]# kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.168.59.142:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
namespace: default
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
[root@master .kube]#
-
就是想修改当前集群的信息。
-
配置文件就是
~./kube/config
,里面的代码解释见下面的方式一,修改方法也和方式一是一摸一样的,只是留一个集群信息而已。
文件备份
- 这个是最原始的方法,直接通过编辑配置文件实现,做这个操作的时候,务必要备份一下这个文件【key在这里面】。
[root@master ~]# cd .kube/
[root@master .kube]# cp config config.bak
[root@master .kube]#
config文件代码解释【上下文详细解释】
- 备份完以后我们就直接编辑:
~./kube/config
文件
为了方便编辑,进入以后,建议将3个key都删了,得到下面这样清爽的文件内容【不删的话key内容太多,影响操作】
为了方便理解,我直接在下面代码后面加注释,认真看,每行代码的作用都说清楚了【下面是文件原生代码,未进行任何修改,只做解释】
1 apiVersion: v1
2 clusters: # 这个意思是需要连接到哪个集群【下面3-6行为一组】,需要添加多少新集群,就复制3-6行添加到6行下面并修改相关信息
3 - cluster: # 集群开头【3-6行为一组】
4 certificate-authority-data: #这个是key,后面会说查看方式的
5 server: https://192.168.59.142:6443 #这个集群的master节点ip
6 name: kubernetes #集群名称,可以自定义
7 contexts:#上下文,将上面的集群【clusters】和下面的用户【users】绑定在一起【未绑定前他们是相互独立的】
8 - context: #上下文开头【8-12行为一组】,有多少集群添加多少上下文,放12行下面
9 cluster: kubernetes #这个是上面cluster的name
10 namespace: default #所处命名空间【可以不用修改的】
11 user: kubernetes-admin #这个是下面user的name
12 name: kubernetes-admin@kubernetes # 这个上下文名称可以自定义
13 current-context: kubernetes-admin@kubernetes # 这个是默认上下文名称【cluster的name】【比如有多个集群,使用哪个上下文,就默认在哪个集群下】
14 kind: Config
15 preferences: {}
16 users: # 这指定用户信息【下面17-20为一组】,有多少集群添加多少用户【复制内容放20行下面】
17 - name: kubernetes-admin # 用户名称可以自定义
18 user:
19 client-certificate-data: #这个是key,后面会说查看方式的
20 client-key-data:#这个是key,后面会说查看方式的
config代码编辑
根据上面的解释,做好相关编辑,下面是我配置好的代码
[root@master .kube]# vim config
1 apiVersion: v1
2 clusters:
3 - cluster:
4 certificate-authority-data:
5 server: https://192.168.59.142:6443
6 name: master
7 - cluster:
8 certificate-authority-data:
9 server: https://192.168.59.151:6443
10 name: master1
11 contexts:
12 - context:
13 cluster: master
14 namespace: default
15 user: ccx
16 name: context
17 - context:
18 cluster: master1
19 namespace: default
20 user: ccx1
21 name: context1
22 current-context: context
23 kind: Config
24 preferences: {}
25 users:
26 - name: ccx
27 user:
28 client-certific