Kubernetes命令行工具kubectl允许您对Kubernetes集群运行命令。您可以使用kubectl部署应用程序,检查和管理集群资源以及查看日志。

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

在Linux上使用curl安装Kubectl二进制文件
1、使用以下命令下载最新版本:

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

2、使kubectl二进制可执行文件。

chmod +x ./kubectl

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

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

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

kubectl version --client

验证kubectl配置
为了让kubectl查找和访问Kubernetes集群,它需要一个kubeconfig文件,该文件是在您使用kube-up.sh创建集群或成功部署Minikube集群时自动创建的。默认情况下,kubeconfig位于~/.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配置
启用shell自动补全
kubectl为Bash和Zsh提供自动补全支持,可以节省很多打字时间。

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

介绍
可以使用kubectl completion bash命令生成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

重新加载您的shell并通过键入type _init_completion验证是否已正确安装bash-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自动补全功能应该可以正常工作了。