7 - 安装和配置kubectl


kubectl是一个CLI命令行工具,用于运行Kubernetes集群的命令。Rancher 2.x中的许多维护和管理都需要它。

  • Ubuntu, Debian or HypriotOS
  1. sudo apt-get update && sudo apt-get install -y apt-transport-https
  2. curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
  3. sudo apt-key add -
  4. sudo touch /etc/apt/sources.list.d/kubernetes.list
  5. echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | \
  6. sudo tee -a /etc/apt/sources.list.d/kubernetes.list
  7. sudo apt-get update
  8. sudo apt-get install -y kubectl
  • CentOS, RHEL or Fedora
  1. cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  2. [kubernetes]
  3. name=Kubernetes
  4. baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
  5. enabled=1
  6. gpgcheck=1
  7. repo_gpgcheck=1
  8. gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg \
  9. https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
  10. EOF
  11. yum install -y kubectl

如果您使用的是Ubuntu或其他支持snap包管理器的Linux发行版,则可通过snap安装kubectl。

1、切换到snap用户并运行安装命令:

  1. sudo snap install kubectl --classic

2、测试以确保您安装的是最新的版本:

  1. kubectl version

如果您使用的是macOS并使用Homebrew包管理器,则可以使用Homebrew安装kubectl。

1、运行安装命令:

  1. brew install kubernetes-cli

2、测试以确保您安装的是最新的版本:

  1. kubectl version

如果您使用的是macOS并使用Macports包管理器,则可以使用Macports安装kubectl。

1、运行安装命令:

  1. port install kubectl

2、测试以确保您安装的是最新的版本:

  1. kubectl version

如果您使用的是Windows并使用Powershell Gallery包管理器,则可以使用Powershell安装和更新kubectl。

  • To install:

运行安装命令(确保指定DownloadLocation):

  1. Install-Script -Name install-kubectl -Scope CurrentUser -Force
  2. install-kubectl.ps1 [-DownloadLocation <path>]

Note: If you do not specify a DownloadLocation, kubectl will be installed in the user’s temp Directory.

The installer creates $HOME/.kube and instructs it to create a config file

  • To update:

运行更新命令:

  1. re-run Install-Script to update the installer
  2. re-run install-kubectl.ps1 to install latest binaries

如果您使用的是Windows并使用Chocolatey包管理器,则可以使用Chocolatey安装kubectl。

1、运行安装命令:

  1. choco install kubernetes-cli

2、测试以确保您安装的是最新的版本:

  1. kubectl version

3、切换到%HOME%目录:

例如: cd C:\users\yourusername

4、创建.kube目录:

  1. mkdir .kube

5、切换到创建的.kube目录:

  1. cd .kube

6、配置kubectl以使用远程Kubernetes集群:New-Item config -type文件

您可以将kubectl安装为Google Cloud SDK的一部分。

1、安装Google Cloud SDK.

2、运行kubectl安装命令:

  1. gcloud components install kubectl

3、测试以确保您安装的是最新的版本:

  1. kubectl version

  • MacOS1、文件下载

通过文件下载下载最新文档版本。

2、确保kubectl二进制文件是可执行文件。

  1. chmod +x ./kubectl

3、将kubectl二进制文件移动到PATH路径下。

  1. sudo mv ./kubectl /usr/local/bin/kubectl
  • Linux1、文件下载

通过文件下载下载最新文档版本。

2、确保kubectl二进制文件是可执行文件。

  1. chmod +x ./kubectl

3、将kubectl二进制文件移动到PATH路径下。

  1. sudo mv ./kubectl /usr/local/bin/kubectl
  • Windows1、下载二进制文件

通过文件下载下载最新文档版本。

2、将kubectl二进制文件移动到PATH路径下。

使用RKE创建Kubernetes集群时,RKE会在本地目录中创建一个包含认证信息的配置文件kube_config_rancher-cluster.yml,以使用kubectlhelm等工具连接到新集群。

您可以将此文件复制到$HOME/.kube/config或者如果您正在使用多个Kubernetes集群,请将KUBECONFIG环境变量设置为路径kube_config_rancher-cluster.yml

  1. export KUBECONFIG=$(pwd)/kube_config_rancher-cluster.yml

测试您的连接,看看是否可以返回节点列表。

  1. kubectl --kubeconfig=kube_configxxx.yml get nodes
  2. NAME STATUS ROLES AGE VERSION
  3. 165.227.114.63 Ready controlplane,etcd,worker 11m v1.10.1
  4. 165.227.116.167 Ready controlplane,etcd,worker 11m v1.10.1
  5. 165.227.127.226 Ready controlplane,etcd,worker 11m v1.10.1

通过获取集群状态来检查kubectl是否已正确配置:

  1. kubectl cluster-info

如果您看到URL响应,则kubectl已正确配置。

如果您看到类似于以下内容的消息,则kubectl配置不正确或无法连接到Kubernetes集群。

  1. The connection to the server <server-name:port> was \
  2. refused - did you specify the right host or port?

例如,如果您打算在笔记本电脑上(本地)运行Kubernetes集群,则需要首先安装minikube等工具,然后重新运行上述命令。

如果kubectl cluster-info返回url响应但您无法访问集群,要检查它是否配置正确,请使用:

  1. kubectl --kubeconfig=kube_configxxx.yml cluster-info dump

kubectl包括自动补全支持,可以节省大量的输入!完成脚本本身由kubectl生成,因此您通常只需要从配置文件中调用它。这里提供了常见的例子。有关详细信息,请咨询kubectl completion -h

1、使用bash的Linux主机

在CentOS Linux上,您可能需要安装默认情况下未安装的bash-completion软件包。

  1. yum install bash-completion -y

运行source <(kubectl completion bash)可将kubectl自动补全添加到当前shell,要使kubectl自动补全命令自动加载:

  1. echo "source <(kubectl completion bash)" >> ~/.bashrc

2、使用bash的macOS主机

在macOS上,您需要先通过Homebrew安装bash-completion:

  1. # If running Bash 3.2 included with macOS
  2. brew install bash-completion
  3. # or, if running Bash 4.1+
  4. brew install bash-completion@2

Follow the “caveats” section of brew’s output to add the appropriate bash completion path to your local .bashrc.

If you installed kubectl using the Homebrew instructions then kubectl completion should start working immediately.

If you have installed kubectl manually, you need to add kubectl autocompletion to the bash-completion:

  1. kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl

The Homebrew project is independent from Kubernetes, so the bash-completion packages are not guaranteed to work.

3、Using Zsh

If you are using zsh edit the ~/.zshrc file and add the following code to enable kubectl autocompletion:

  1. if [ $commands[kubectl] ]; then
  2. source <(kubectl completion zsh)
  3. fi

Or when using Oh-My-Zsh, edit the ~/.zshrc file and update the plugins= line to include the kubectl plugin.

  1. plugins=(kubectl)