kubectl 是 K8s 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。
kubectl 工具已包含在 K8s 的 Server、Node 编译程序安装包中,无需单独安装。默认情况下,启动时连接本地服务器的 8080 端口访问 K8s APIServer,因此仅可以在 K8s 的任意主控节点上使用(如果需要在工作节点或者其他主机上使用 kubectl,则需要为它创建 K8s APIServer 的连接文件,通常情况下没有这种必要性)。
目录
1.语法结构
2.命令清单
3.集群部署拓扑图
4.应用资源编排部署
-- 4.1.使用命令部署应用
-- 4.2.使用 YAML 文件部署应用
5.运维管理
附录一 更多学习资料
附录二 安装 kubectl 命令补全工具
1.语法结构
kubetctl [command] [type] [name] [flages]
[commasnd]:指对一个或者多个资源的操作,例如:create、get、name、describe、delete 等。
[type] 指定资源类型(不区分大小写),多个资源通过 "," 分隔。可以通过 "kubectl api-resources" 命令查询资源类型清单。
name:指定资源名称(区分大小写)。
flags:指定可选参数。常用包括:
-n [namespace]:指定资源的命名空间,默认值是 "default"。
-o [output_format]:指定资源的输出方式。可选形式包括:
① -o json:输出 JSON 格式 API 对象。
② -o name:输出资源名称,不显示其他信息。
③ -o wide:输出资源的详细信息。
④ -o yaml:输出 YAML 格式的 API 对象。
⑤ 不指定时输出资源摘要信息。
-s [apiserver_ip:port]:指定连接的 API Server 的 IP 和 Port,默认值是 "localhost:8080"。
示例 1:查询所有工作节点
[centos@k8s-master ~]$ kubectl get node
示例 2:查询指定名字的工作节点
[centos@k8s-master ~]$ kubectl get node k8s-node1
示例 3:查询指定命名空间的 Pod 的摘要信息
[centos@k8s-master ~]$ kubectl get pod -n kube-system
示例 4:查询指定命名空间的 Pod 的详细信息
[centos@k8s-master ~]$ kubectl get pod -n kube-system -o wide
示例 5:查询指定命名空间的 Pod 、 Service、Node 的详细信息
[centos@k8s-master ~]$ kubectl get pod,svc,node -n kube-system -o wide
2.命令清单
1、基础命令
create:通过文件名或标准输入创建资源。
expose:将一个新的资源暴露为新的服务。
run:在集群中运行一个特定的镜像(创建一个容器)。
set:在对象上设置特定的功能。
get:显示一个或多个资源。
edit:编辑一个资源。
exit:使用默认的编辑器编辑资源。
delete:通过文件名、标准输入、资源名称、或标签选择器来删除资源。
explain:查看资源的文档。
2、部署命令
rollout:管理资源的发布。
rolling-update:对给定的复制控制器滚动更新。
scale:扩容或缩容 Pod 数量。
autoscale :创建一个自动选择扩容并设置 Pod 数量。
3、集群管理命令
certficate:修改证书资源。
cluster-info:显示集群信息。
cordon:标记节点可以调度。
uncordon 标记节点不可调度:(节点维护情况下使用)。
drain:驱逐节点上的应用,准备下线(比如机器故障、更换等停机)。
taint:修改节点 taint 标记。
4、故障诊断和调试命令
describe:显示特性资源或资源组详细信息。
log:在一个 Pod 中打印一个容器日志。
attach:附加到一个运行的容器。
exec:执行命令到容器。
port-forward:转发一个或多个本地端口到 Pod 。
porxy:运行一个 Porxy 到 API Server。
cp:拷贝文件或目录到容器中。
auth:检查授权。
5、高级命令
apply:通过文件名或标准输入对资源应用配置。
patch:通过补丁修改、更新资源字段。
replace:通过文件名或标准输入替换一个资源。
covert:不同 API 版本之间转换配置文件。
6、设置命令
lable:更新资源上的标签。
annotate:更新资源上