kubectl简介
管理 Kubernetes 集群资源的唯一入口是通过调用 apiserver 的接口,kubectl 是官方提供的 CLI 命令行工具,kubectl 将用户在命令行输入的命令组织并转化为 apiserver 能识别的信息,进而实现对 Kubernetes 各种资源的管理功能。使用 kubectl 可以实现部署应用程序、检查和管理集群资源、查看日志等功能。
安装方法
确保要安装的 kubectl 版本与 Kubernetes 集群的版本差异较小,建议小版本号最多差一。例如,使用 v1.26 版本的客户端与 v1.25、v1.26 和 v1.27 版本的 Kubernetes 集群通信。使用最新兼容的 kubectl 版本会避免一些不可预知的问题。
在 Linux 系统中安装 kubectl
1、使用 curl 工具下载后安装,下载
# curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
下载指定版本的话使用指定的版本替换命令中的 $(curl -L -s
https://dl.k8s.io/release/stable.txt) 部分即可。例如下载 v1.26.0 版本:
curl -LO https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubectl
安装
# chmod +x ./kubectl# mv ./kubectl /usr/local/bin
2、使用包管理工具安装
Debian/Ubuntu
$ sudo apt-get update
$ sudo apt-getinstall -y ca-certificates curl apt-transport-https
$ sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
$ echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
$ sudo apt-getupdate
$ sudo apt-getinstall -y kubectl
Red Hat/Centos
cat<<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearchenabled=1gpgcheck=1gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpgEOFsudoyum install -y kubectl
在 macOS 系统中安装 kubectl
1、使用 curl 工具下载后安装,下载
$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
下载指定版本的话使用指定的版本替换命令中 $(curl -L -s
https://dl.k8s.io/release/stable.txt) 部分即可。例如下载 v1.26.0 版本:
curl -LO " https://dl.k8s.io/release/v1.26.0/bin/darwin/amd64/kubectl"
安装
$ chmod +x ./kubectl$ sudo mv ./kubectl /usr/local/bin/kubectl$ sudo chown root: /usr/local/bin/kubectl
2、使用 Homebrew 安装
$ brew install kubectl
安装完成后查看下安装的版本
kubectl version --client
使用方法
在命令行工具中,使用方法如下
kubectl[command][TYPE][NAME][flags]
command:指定要执行的操作,例如 create、get、describe,、delete。
TYPE:指定资源类型,资源类型名称不区分大小写 ,如下几种写法的效果是一样的
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
NAME:指定资源的名称,名称是区分大小写的,如果省略名称,则显示所有资源的详细信息,例如 kubectl get pods。当对多个资源执行操作时,可以通过类型和名称指定每个资源,或者指定一个或多个文件,例如
//如果资源都是相同的类型,则对它们进行分组
$ kubectl get pod example-pod1 example-pod2
//分别指定多个资源类型
$ kubectl get pod/example-pod1 replicationcontroller/example-rc1
flags:指定可选项,例如可以使用 -s 或 --server 来指定Kubernetes apiserver 的地址和端口。
关于 kubectl 更多的使用方法说明请参考文档