文章目录
简介
该文章详细对kubect命令行的参数进行讲解,并将api-resource的信息整理成列表,方便查看,同时通过一系列的实践操作的命令来进行举例,便于更深刻的了解和掌握该命令的用法。
一.命令帮助翻译
kubectl -h
查看帮助信息:kubectl控制Kubernetes集群管理器。更多信息,请访问:https://kubernetes.io/docs/reference/kubectl/
1.1.基本命令(初学者):
- create: 从文件或stdin创建资源
- expose: 获取复制控制器、服务、部署或pod,并将其作为新的Kubernetes服务公开
- run: 在群集上运行特定映像
- set: 设置对象的特定功能
1.2.基本命令(中级):
- explain: 获取资源的文档
- get: 显示一个或多个资源
- edit: 编辑服务器上的资源
- delete: 按文件名、stdin、资源和名称或按资源和标签选择器删除资源
1.3.部署命令:
- rollout: 管理资源的滚动发布
- scale: 为部署、复制副本集或复制控制器设置新的大小
- autoscale: 自动缩放部署、副本集、有状态集或复制控制器
1.4.群集管理命令:
- certificate: 修改证书资源
- cluster-info: 显示集群信息
- top: 显示资源(CPU/内存)使用情况
- cordon: 将节点标记为不可调度
- uncordon: 将节点标记为可调度
- drain: 排水节点为维护做准备
- taint: 更新一个或多个节点上的污点
1.5.疑难解答和调试命令:
- description显示特定资源或资源组的详细信息
- logs打印pod中容器的日志
- attach: 附加到正在运行的容器
- exec: 在容器中执行命令
- port-forward: 将一个或多个本地端口转发到一个pod
- proxy: 运行到Kubernetes API服务器的代理
- cp: 将文件和目录复制到容器和从容器复制文件和目录
- auth: 检查授权
- debug: 创建调试会话以排除工作负载和节点的故障
- events: 列出事件
1.6.高级命令:
- diff: 将实时版本与潜在的应用版本进行区分
- apply: 按文件名或stdin将配置应用于资源
- patch: 更新资源的字段
- replace: 用文件名或stdin替换资源
- wait: 实验:在一个或多个资源上等待特定条件
- kustomize: 从目录或URL构建kustomization目标
1.7.设置命令:
- label: 更新资源上的标签
- annotate: 更新资源上的注释
- completion: 为指定的shell(bash、zsh、fish或powershell)输出shell完成代码
1.8.插件提供的子命令:
- 1.28.5 命令1.28.5是用户安装的插件
1.9.其他命令:
- api-resources: 在服务器上打印支持的api资源
- api-versions: 以“组/版本”的形式打印服务器上支持的api版本
- config: 修改kubeconfig文件
- plugin: 提供与插件交互的实用程序
- version: 打印客户端和服务器的版本信息
1.10.用法
kubectl [flags] [options]
有关给定命令的详细信息,请使用“kubectl<command>–help”。
使用“kubectl选项”作为全局命令行选项列表(适用于所有命令)。
二.资源列表
2.1.资源列表及简称
2.2.配置kubectl自动补全
echo "source <(kubectl completion bash)" >> /root/.bashrc
三.命令操作实践
3.1.创建资源
dd
-
创建命名空间:
kubectl create ns test-ns
-
创建deployment:
kubectl create deployment nginx --image=nginx:1.14 --port=80 --replicas=3
-
创建service:
kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort
-
创建pod:
kubectl run nginx --image=nginx --image-pull-policy=IfNotPresent
-
创建cronjob: 创建一个cronjob,并且每分钟执行一次命令date:
kubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date
-
创建serviceAccount:
kubectl create serviceaccount my-service-account
<