kubernetes常用命令表
### Kubernetes (K8s) 常用命令详解 #### 一、kubectl run `kubectl run` 是一个用于创建和运行容器镜像的强大命令。它能够帮助用户快速部署应用程序到 Kubernetes 集群中。 ##### 1.1 语法: ```shell $ kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...] ``` ##### 1.2 示例: ```shell # 启动一个名为 nginx 的实例,并使用官方 nginx 镜像。 kubectl run nginx --image=nginx ``` #### 二、kubectl expose `kubectl expose` 命令可以将现有 Pod 或 Replication Controller 曝光为 Kubernetes Service。 ##### 2.1 语法: ```shell $ kubectl expose (pod|replicationcontroller|deployment|daemonset|statefulset) NAME --type=TYPE --port=PORT [--target-port=NUMBER_OR_NAME] [--protocol=TCP|UDP] [--name=NAME] [--external-ip=EXTERNAL_IP] [--selector="label" ...] [--dry-run=bool] ... ``` ##### 2.2 示例: ```shell # 将名为 my-pod 的 Pod 暴露为 NodePort 类型的 Service。 kubectl expose pod my-pod --type=NodePort --port=80 ``` #### 三、kubectl annotate `kubectl annotate` 命令允许您添加或修改一个资源的注解(Annotations)。 ##### 3.1 语法: ```shell $ kubectl annotate (-f FILENAME | TYPE NAME) KEY_1=VAL_1 KEY_2=VAL_2 ... [--overwrite] [--local] [--resource-version=version] [--dry-run=bool] ... ``` ##### 3.2 示例: ```shell # 为名为 nginx 的 Deployment 添加注解。 kubectl annotate deployment nginx key1=val1 ``` #### 四、kubectl autoscale 此命令可以实现 Pod 的水平自动扩展。 ##### 4.1 语法: ```shell $ kubectl autoscale (replicationcontroller|deployment|replicaset) NAME --min=MINPODS --max=MAXPODS [--cpu-percent=CPU] [--target CPU] [--memory=MEMORY] [--target-memory] [--horizontal-pod-autoscaler NAME] [--dry-run=bool] ... ``` ##### 4.2 示例: ```shell # 设置名为 nginx 的 Deployment 自动缩放范围为 1 至 10 个 Pod,并且 CPU 使用率超过 50% 时触发。 kubectl autoscale deployment nginx --min=1 --max=10 --cpu-percent=50 ``` #### 五、kubectl convert `kubectl convert` 可以将配置文件转换为不同版本的 API。 ##### 5.1 语法: ```shell $ kubectl convert -f FILENAME [--local] [--output-version=VERSION] [--as=USERNAME] [--as-group=GROUPNAME] [--dry-run=bool] ... ``` ##### 5.2 示例: ```shell # 将名为 nginx-deployment.yaml 的文件转换为 v1beta1 版本。 kubectl convert -f nginx-deployment.yaml --output-version=v1beta1 ``` #### 六、kubectl create `kubectl create` 命令用于创建各种 Kubernetes 资源。 ##### 6.1 语法: ```shell $ kubectl create (-f FILENAME | TYPE NAME) [--dry-run=bool] ... ``` #### 七、kubectl create clusterrole 创建 ClusterRole。 ##### 7.1 语法: ```shell $ kubectl create clusterrole NAME --verb=VERB --resource=RESOURCE [--resource-name=RESOURCE_NAME] [--api-group=API_GROUP] [--dry-run=bool] ... ``` #### 八、kubectl create clusterrolebinding 为特定的 ClusterRole 创建 ClusterRoleBinding。 ##### 8.1 语法: ```shell $ kubectl create clusterrolebinding NAME --clusterrole=ROLE --user=USER --group=GROUP --serviceaccount=NAMESPACE:ACCOUNT [--dry-run=bool] ... ``` #### 九、kubectl create configmap 创建 ConfigMap。 ##### 9.1 语法: ```shell $ kubectl create configmap NAME --from-file=FILE [--from-literal=key=val] [--dry-run=bool] ... ``` #### 十、kubectl create deployment 创建 Deployment。 ##### 10.1 语法: ```shell $ kubectl create deployment NAME --image=image [--replicas=replicas] [--port=port] [--dry-run=bool] ... ``` #### 十一、kubectl create namespace 创建 Namespace。 ##### 11.1 语法: ```shell $ kubectl create namespace NAME [--dry-run=bool] ... ``` #### 十二、kubectl create poddisruptionbudget 创建 PodDisruptionBudget。 ##### 12.1 语法: ```shell $ kubectl create poddisruptionbudget NAME --max-unavailable=NUM_OR_PERCENT [--dry-run=bool] ... ``` #### 十三、kubectl create quota 创建 ResourceQuota。 ##### 13.1 语法: ```shell $ kubectl create quota NAME --hard=LIMITS [--dry-run=bool] ... ``` #### 十四、kubectl create role 创建 Role。 ##### 14.1 语法: ```shell $ kubectl create role NAME --verb=VERB --resource=RESOURCE [--resource-name=RESOURCE_NAME] [--api-group=API_GROUP] [--dry-run=bool] ... ``` #### 十五、kubectl create rolebinding 为特定 Role 或 ClusterRole 创建 RoleBinding。 ##### 15.1 语法: ```shell $ kubectl create rolebinding NAME --role=ROLE --user=USER --group=GROUP --serviceaccount=NAMESPACE:ACCOUNT [--dry-run=bool] ... ``` #### 十六、kubectl create service 创建 Service。 ##### 16.1 语法: ```shell $ kubectl create service (clusterip|nodeport|loadbalancer|externalname) NAME --tcp=PORT:TARGET_PORT [--session-affinity=AffinityType] [--external-ip=EXTERNAL_IP] [--type=ServiceType] [--dry-run=bool] ... ``` #### 十七、kubectl create serviceaccount 创建 ServiceAccount。 ##### 17.1 语法: ```shell $ kubectl create serviceaccount NAME [--dry-run=bool] ... ``` #### 十八、kubectl create secret 创建 Secret。 ##### 18.1 语法: ```shell $ kubectl create secret generic NAME --from-file=FILE [--dry-run=bool] ... $ kubectl create secret tls NAME --cert=CERT_FILE --key=KEY_FILE [--dry-run=bool] ... $ kubectl create secret docker-registry NAME --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USERNAME --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL [--dry-run=bool] ... ``` #### 十九、kubectl delete 删除资源对象。 ##### 19.1 语法: ```shell $ kubectl delete (-f FILENAME | TYPE NAME) [--grace-period=GRACE_PERIOD] [--orphan] [--cascade=false] [--dry-run=bool] ... ``` #### 二十、kubectl edit 编辑服务器上的资源对象。 ##### 20.1 语法: ```shell $ kubectl edit (-f FILENAME | TYPE NAME) [--local] [--resource-version=version] [--dry-run=bool] ... ``` #### 二十一、kubectl get 获取资源信息。 ##### 21.1 语法: ```shell $ kubectl get (-f FILENAME | TYPE NAME) [--all-namespaces] [--field-selector=FIELD_SELECTOR] [--label-selector=LABEL_SELECTOR] [--show-labels] [--show-all] [--output=OUTPUT_FORMAT] [--dry-run=bool] ... ``` #### 二十二、kubectl label 更新资源对象的 label。 ##### 22.1 语法: ```shell $ kubectl label (-f FILENAME | TYPE NAME) KEY_1=VAL_1 KEY_2=VAL_2 ... [--overwrite] [--local] [--resource-version=version] [--dry-run=bool] ... ``` #### 二十三、kubectl patch 使用 patch 更新资源对象字段。 ##### 23.1 语法: ```shell $ kubectl patch (-f FILENAME | TYPE NAME) --patch PATCH --type=(json|merge|strategic) [--local] [--resource-version=version] [--dry-run=bool] ... ``` #### 二十四、kubectl replace 替换资源对象。 ##### 24.1 语法: ```shell $ kubectl replace (-f FILENAME | TYPE NAME) [--local] [--resource-version=version] [--dry-run=bool] ... ``` #### 二十五、kubectl rolling-update 使用 RC 进行滚动更新。 ##### 25.1 语法: ```shell $ kubectl rolling-update OLD_RC NEW_RC --images=image [--force] [--timeout=TIMEOUT] [--dry-run=bool] ... ``` #### 二十六、kubectl scale 扩缩 Pod 数量。 ##### 26.1 语法: ```shell $ kubectl scale (-f FILENAME | TYPE NAME) --replicas=REPLICAS [--resource-version=version] [--dry-run=bool] ... ``` #### 二十七、kubectl rollout 对资源对象进行管理。 ##### 27.1 语法: ```shell $ kubectl rollout (status|history|resume|pause|undo) (-f FILENAME | TYPE NAME) [--to-revision=REVISION] [--record] [--dry-run=bool] ... ``` #### 二十八、kubectl set 配置应用资源。 ##### 28.1 语法: ```shell $ kubectl set (image|resources|selector|subject) (-f FILENAME | TYPE NAME) [NAME] [VALUE] ... [--local] [--resource-version=version] [--dry-run=bool] ... ``` #### 二十九、kubectl set resources 指定 Pod 的计算资源需求。 ##### 29.1 语法: ```shell $ kubectl set resources (-f FILENAME | TYPE NAME) --limits=LIMITS --requests=REQUESTS [--local] [--resource-version=version] [--dry-run=bool] ... ``` #### 三十、kubectl set selector 设置资源对象 selector。 ##### 30.1 语法: ```shell $ kubectl set selector (-f FILENAME | TYPE NAME) --local [--resource-version=version] [--dry-run=bool] ... ``` #### 三十一、kubectl set image 更新已有资源对象中的容器镜像。 ##### 31.1 语法: ```shell $ kubectl set image (-f FILENAME | TYPE NAME) CONTAINER_NAME=NEW_IMAGE_NAME[:TAG] [--local] [--resource-version=version] [--dry-run=bool] ... ``` #### 三十二、kubectl set subject 更新 RoleBinding / ClusterRoleBinding 中 User、Group 或 ServiceAccount。 ##### 32.1 语法: ```shell $ kubectl set subject (-f FILENAME | TYPE NAME) --local [--resource-version=version] [--dry-run=bool] ... ``` 以上是 Kubernetes 中 `kubectl` 命令的一些常见用法,每个命令都有其特定的功能和应用场景。掌握这些命令对于高效管理和操作 Kubernetes 集群至关重要。希望本文能够帮助您更好地理解和运用这些强大的工具。
剩余32页未读,继续阅读
- 粉丝: 1215
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip
- (源码)基于Java和MySQL的学生信息管理系统.zip
- (源码)基于ASP.NET Core的零售供应链管理系统.zip