通过前一章,我们搭建了一个k8s集群,一个master,一个node1,虽然可以通过ssh远程连接到master来管理集群,但还是多了这一步,不方便。另外也不方便访问win10 host中的文件。这一章,我们在本地配置集群管理工具,来访问我们前面部署好的集群。

1.在本机win10 host安装k8s管理工具,用它来远程管理k8s集群

choco install kubernetes-cli
  • 查看安装结果

   

2.本机可以管理多个k8s集群,这些集群的配置信息存储在本机config文件中

  • 管理集群,需要知道集群的ip、端口、用户、证书信息,配置一次,存储在本地
C:\Users\<UserName>\.kube\config
  •  不同的集群,通过不同的context上下文来区分,我们可以查看所有上下文
kubectl config get-contexts
  • 我本机装了DockerDesktop,已经有了一个集群 

  

3.本地集群管理的config构成

  • 配置新的集群之前,我的config是这样的
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: 
    server: https://kubernetes.docker.internal:6443
  name: docker-desktop
contexts:
- context:
    cluster: docker-desktop
    user: docker-desktop
  name: docker-desktop
current-context: docker-desktop
kind: Config
preferences: {}
users:
- name: docker-desktop
  user:
    client-certificate-data: 
    client-key-data: 
  • 包含了几个主要内容
  1. cluster   :集群地址,授权信息信息等
  2. context  :集群上下文,将集群和用户关联起来,这样才能登录并管理集群
  3. user       :集群的用户信息

4.增加一个集群,也就是在配置文件中增加一套上述的三个关键内容

  • 登录master节点,拿到要增加的集群信息,这里使用admin用户来登录集群
ssh root@192.168.137.2
cat /etc/kubernetes/admin.conf
  • 把admin.conf文件中的内容摘抄到本地config中,去掉证书敏感数据后,结果如下:
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: 
    server: https://kubernetes.docker.internal:6443
  name: docker-desktop
- cluster:
    certificate-authority-data: 
    server: https://192.168.137.2:6443
  name: hyper-k8s
- cluster:
    server: htts://192.168.137.2
  name: test
contexts:
- context:
    cluster: docker-desktop
    user: docker-desktop
  name: docker-desktop
- context:
    cluster: hyper-k8s
    user: hyper-k8s-admin
  name: hyper-k8s
current-context: hyper-k8s
kind: Config
preferences: {}
users:
- name: docker-desktop
  user:
    client-certificate-data: 
    client-key-data:
- name: hyper-k8s-admin
  user:
    client-certificate-data: 
    client-key-data:
  • 也可以使用命令完成集群上下文的配置

   

5.管理本地存储的所有集群上下文

  • 查看所有上下文
kubectl config get-contexts
  • 管理hyper-k8s集群,所必要的信息已经有了 

  

6.在本地管理远端hyper-k8s集群

  • 当前集群切换为hyper-k8s集群
config use-context hyper-k8s
  • 带*的就是当前集群

  

  • 这样就可以在本地管理hyper-k8s集群了
kubectl get nodes

   

下一篇,我们在本地给这个集群远程安装DashBoard,实现集群的可视化管理。

上一篇  下一篇

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐