安装和设置kubectl

安装和设置kubectl

Kubernetes命令行工具kubectl允许您对Kubernetes集群运行命令。您可以使用kubectl部署应用程序,检查和管理集群资源以及查看日志。有关kubectl操作的完整列表,请参见kubectl概述。
在你开始之前

您所使用的kubectl版本必须在集群的一个较小版本差异之内。例如,v1.2客户端应与v1.1,v1.2和v1.3主服务器一起使用。使用最新版本的kubectl有助于避免意外的问题。
在Linux上安装Kubectl
在Linux上使用curl安装Kubectl二进制文件

使用以下命令下载最新版本:

curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl

要下载特定版本,请用特定版本替换$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)命令部分。

例如,要在Linux上下载版本v1.18.0,请输入:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl

使kubectl二进制可执行文件。

chmod +x ./kubectl

将二进制文件移到您的PATH中。

sudo mv ./kubectl /usr/local/bin/kubectl

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

kubectl version --client

使用本机软件包管理进行安装

Ubuntu,Debian或HypriotOS
CentOS,RHEL或Fedora

sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo “deb https://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

使用其他软件包管理进行安装

捕捉
家酿

如果您使用的是Ubuntu或其他支持快照包管理器的Linux发行版,则可以将kubectl作为快照应用程序使用。

snap install kubectl —classic

kubectl version —client

在macOS上安装Kubectl
在macOS上使用curl安装Kubectl二进制文件

下载最新版本:

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"

要下载特定版本,请用特定版本替换$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)命令部分。

例如,要在macOS上下载版本v1.18.0,请输入:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/darwin/amd64/kubectl

使kubectl二进制可执行文件。

chmod +x ./kubectl

将二进制文件移到您的PATH中。

sudo mv ./kubectl /usr/local/bin/kubectl

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

kubectl version --client

在macOS上使用Homebrew安装

如果您在macOS上并使用Homebrew软件包管理器,则可以在Homebrew上安装kubectl。

运行安装命令:

brew install kubectl 

要么

brew install kubernetes-cli

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

kubectl version --client

在macOS上使用Macports安装

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

运行安装命令:

sudo port selfupdate
sudo port install kubectl

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

kubectl version --client

在Windows上安装Kubectl
在Windows上使用curl安装Kubectl二进制文件

从此链接下载最新版本v1.18.0 。

或者,如果已curl安装,请使用以下命令:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/windows/amd64/kubectl.exe

要查找最新的稳定版本(例如,用于脚本编写),请查看https://storage.googleapis.com/kubernetes-release/release/stable.txt。

将二进制文件添加到您的PATH中。

测试以确保的版本kubectl与下载的版本相同:

kubectl version --client

注意: 适用于Windows的Docker桌面将其自己的版本添加kubectl到PATH。如果您以前安装过Docker Desktop,则可能需要将PATH条目放置在Docker Desktop安装程序添加的PATH之前,或者删除Docker Desktop的kubectl。

从PSGallery使用Powershell安装

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

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

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

    注意:如果不指定DownloadLocation,kubectl将安装在用户的temp目录中。

安装程序将创建$HOME/.kube并指示其创建配置文件。

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

kubectl version --client

注意:通过重新运行步骤1中列出的两个命令来执行更新安装。

使用Chocolatey或Scoop在Windows上安装

要在Windows上安装kubectl,可以使用Chocolatey软件包管理器或Scoop命令行安装程序。
    巧克力
    舀

choco install kubernetes-cli

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

kubectl version --client

导航到您的主目录:

# If you're using cmd.exe, run: cd %USERPROFILE%
cd ~

创建.kube目录:

mkdir .kube

转到.kube您刚刚创建的目录:

cd .kube

配置kubectl以使用远程Kubernetes集群:

New-Item config -type file

注意:使用您选择的文本编辑器(例如记事本)编辑配置文件。

作为Google Cloud SDK的一部分下载

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

安装Google Cloud SDK。

运行kubectl安装命令:

gcloud components install kubectl

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

kubectl version --client

验证kubectl配置

为了让kubectl找到并访问Kubernetes集群,它需要一个kubeconfig文件,该文件是在您使用kube-up.sh创建集群或成功部署Minikube集群时自动创建的。默认情况下,kubectl配置位于~/.kube/config。

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

kubectl cluster-info

如果看到URL响应,则表明kubectl已正确配置为访问您的集群。

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

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

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

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

kubectl cluster-info dump

可选的kubectl配置
启用外壳自动补全

kubectl为Bash和Zsh提供自动补全支持,可以节省很多打字时间。

以下是为Bash(包括Linux和macOS之间的差异)和Zsh设置自动完成功能的过程。

Linux上的Bash
在MacOS上的Bash
sh

介绍

可以使用以下命令生成Bash的kubectl完成脚本kubectl completion bash。在外壳中输入完成脚本可启用kubectl自动补全功能。

但是,完成脚本取决于bash-completion,这意味着您必须先安装此软件(可以通过运行来测试是否已安装bash-completion type _init_completion)。
安装bash-completion

bash-completion由许多软件包管理器提供(请参阅此处)。您可以使用apt-get install bash-completion或进行安装yum install bash-completion,等等。

上面的命令create /usr/share/bash-completion/bash_completion,这是bash-completion的主要脚本。根据您的软件包管理器,您必须在文件中手动获取该~/.bashrc文件。

要找出答案,请重新加载您的shell并运行type _init_completion。如果命令成功执行,则说明您已经设置好了,否则请在~/.bashrc文件中添加以下内容:

source /usr/share/bash-completion/bash_completion

重新加载您的外壳,并通过键入验证bash-completion是否已正确安装type _init_completion。
启用kubectl自动补全

现在,您需要确保在所有shell会话中都获取了kubectl完成脚本。您可以通过两种方式执行此操作:

在~/.bashrc文件中获取完成脚本:

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

将完成脚本添加到/etc/bash_completion.d目录:

kubectl completion bash >/etc/bash_completion.d/kubectl

如果您具有kubectl的别名,则可以扩展shell补全功能以使用该别名:

echo ‘alias k=kubectl’ >>~/.bashrc
echo ‘complete -F __start_kubectl k’ >>~/.bashrc

注意: bash-completion来源中的所有完成脚本/etc/bash_completion.d。

两种方法是等效的。重新加载外壳后,kubectl自动补全功能应该可以正常工作了。