BHOL401 - 连接到Kubernetes集群及Minikube基础操作

本节实验将带领大家了解如何使用kubectl和其他工具连接到Kubernetes集群以便进行后续的操作。

kubectl是操作k8s集群必备的工具,使用这个工具我们可以完成所有的集群管理和应用部署配置工具。

01 - 获取并安装kubectl工具

方法1 - 通过minikube获取

按照 DevOpsBox 操作手册安装了minikube之后,可以直接使用以下命令运行kubectl工具。

注意:以下我们使用的是阿里云版本的minikube工具,这个版本真对国内网络进行了优化,可以保证工具的正常下载。如果使用的是谷歌官方版本,可能会应为网络问题无法完成下载。

参考文档:安装并配置阿里云版MiniKube

  1. ## 启动 minikube 集群
  2. minikube start
  3. ## 运行 kubectl 获取集群节点列表
  4. ### 如果是第一此执行,minikube会自动下载并安装kubectl工具
  5. minikube kubectl get nodes
  6. > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
  7. > kubectl: 44.09 MiB / 44.09 MiB [-------------] 100.00% 959.84 KiB p/s 47s
  8. NAME STATUS ROLES AGE VERSION
  9. minikube Ready control-plane,master 26h v1.20.2

方法2 - 直接安装

kubectl的官方仓库地址:https://github.com/kubernetes/kubectl

如果需要最新版本,可以通过以上仓库中的release列表自行下载安装。

以下列出 Linux / Mac / Windows 上的自动安装方式

Linux

  1. ## Linux 上安装最新版的脚本
  2. curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  3. ### 如果需要安装特定版本,可以将以上命令中的$(curl -L -s https://dl.k8s.io/release/stable.txt)部分替换成特定的版本号,比如:v1.21.0,形成一下特定版本的安装脚本
  4. curl -LO "https://dl.k8s.io/release/v1.21.0/bin/linux/amd64/kubectl"

MacOS

  1. ## MacOS Intel 芯片电脑 安装最新版本脚本
  2. curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
  3. chmod +x kubectl
  4. ### 如果需要安装特定版本,可以将以上命令中的$(curl -L -s https://dl.k8s.io/release/stable.txt)部分替换成特定的版本号,比如:v1.21.0,形成一下特定版本的安装脚本
  5. curl -LO "https://dl.k8s.io/release/v1.21.0/bin/darwin/amd64/kubectl"
  6. ## MacOS ARM 芯片电脑 安装最新版本脚本
  7. curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
  8. chmod +x kubectl
  9. ### 如果需要安装特定版本,可以将以上命令中的$(curl -L -s https://dl.k8s.io/release/stable.txt)部分替换成特定的版本号,比如:v1.21.0,形成一下特定版本的安装脚本
  10. curl -LO "https://dl.k8s.io/release/v1.21.0/bin/darwin/arm64/kubectl"

Windows

下载地址如下:https://dl.k8s.io/release/v1.21.0/bin/windows/amd64/kubectl.exe

下载后配置好PATH即可。

方法3 - 通过 Boathouse 资源网盘安装

按照 Boathouse资源网盘 获取网盘地址

从以下目录中选取适合自己的版本,放置到自己的位置,配置好PATH即可。

BHOL401 - 连接到Kubernetes集群及Minikube基础操作 - 图1

02 - KubeConfig 配置文件

kubectl工具通过 KubeConfig 配置文件连接到 k8s 集群,这个文件一般保存在当前用户的 .kube 目录中,使用vscode打开这个目录可以看到如下内容:

BHOL401 - 连接到Kubernetes集群及Minikube基础操作 - 图2

以上是一个典型的通过minikube创建的 KubeConfig 文件,这个文件的默认地址为 .kube/config。其中的几个关键信息

  • certificate-authority : 集群证书
    • certificate-authority-data : 如果直接将证书内容放置在 config 文件中,则使用这个配置
  • server : 集群api地址
  • name : 集群名称
  • client-certificate : 用户证书
    • client-certificate-data : 如果直接将证书内容放置在 config 文件中,则使用这个配置
  • client-key : 用户私钥
    • client-key-data : 如果直接将证书内容放置在 config 文件中,则使用这个配置

可以通过kubectl同时管理多个集群,这时可以通过 context 切换当前所操作的集群

  1. ## 获取当前 kubectl 可以操作的集群资源
  2. kubectl config get-contexts
  3. CURRENT NAME CLUSTER AUTHINFO NAMESPACE
  4. * ads-agents-cluster ads-agents-cluster clusterUser_rg-ads-agents_ads-agents-cluster
  5. minikube minikube minikube default
  6. ## 切换至 minikube
  7. kubectl config use-context minikube
  8. Switched to context "minikube".
  9. ## 显示当前所使用的集群
  10. kubectl config current-context
  11. minikube

03 - k8s 常用工具

Dashboard

Dashboard 是 k8s 内置的 WebUI,可以帮助你查看和管理集群资源。

  1. ## 使用minikube启动dashboard
  2. ### 注意:启动dashboard之后会独占terminal窗口,建议打开新窗口运行此命令
  3. minikube dashboard

Dashboard启动后效果如下:

BHOL401 - 连接到Kubernetes集群及Minikube基础操作 - 图3

k9s

k9s是一款基于terminal的k8s监控管理工具,可以通过terminal窗口查看和管理大多数k8s集群的功能。

官网地址:https://k9scli.io/

按照官方说明安装后,在 terminal 中键入 k9s 即可连接到当前的KubeConfig Context所指向的集群,效果如下

BHOL401 - 连接到Kubernetes集群及Minikube基础操作 - 图4

Lens

Lens 是一个桌面程序,可以连接到k8s集群查看管理集群资源,同时支持直接连接pod的terminal,方便我们调试k8s应用。

官方地址:https://k8slens.dev/

安装好之后,在Add Cluster中指定你所要使用的KubeConfig文件,Lens即可连接到集群。效果如下:

BHOL401 - 连接到Kubernetes集群及Minikube基础操作 - 图5

小结

本节内容帮助你开始你的k8s开发,对于后续的操作是基础性内容。