k8s系列之:kubectl子命令详解一

k8s系列之:kubectl子命令详解一,第1张

k8s系列之:kubectl子命令详解一

k8s系列之:kubectl子命令详解一

1)create2)get3)run4)set5)get6)explain7)edit8)delete9)rollout10)rolling-update11)scale12)autoscale

1)create

通过文件名或控制台输入创建资源,支持JSON与YAML格式的文件:

kubectl create -f 文件名

1. create deployment
创建具有指定名称的deployment

kubectl create deployment busybox-deployment --image=busybox

2.create namespace
创建具有指定名称的namespace

kubectl create namespace my-namespace

3.create quota
创建具有指定名称的quota(资源配额)

kubectl create quota my-quota 
hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10

4.create service
使用指定的子命令创建一个服务。

创建一个名为my-cs的clusterIP服务

kubectl create service clusterip my-cs --tcp=5678:8080

创建一个名为my-ns的ExternalName服务,ExternalName服务引用外部DNS地址而不仅仅是集群内部的pod地址,着将允许应用程序引用在其他群集或集群平台之外已经存在的服务

kubectl create service externalname my-ns --external-name bar.com

创建一个名为my-lbs的LoadBalancer服务

kubectl create service loadbalancer my-lbs --tcp=5678:8080

创建一个名为my-ns的nodeport服务

kubectl create service nodeport my-ns --tcp=5678:8080
2)get

显示一个或多个资源。kubectl get默认隐藏已停止的资源,可以通过–show-all标志来查看任务资源的完整结果

kubectl get pods

kubectl get pods -o wide
3)run

创建并运行特定镜像。通过创建deployment或job来管理创建的容器。

#启动一个有5个副本的nginx实例,并在容器中设置环境变量
kubectl run nginx --image=nginx --replicas=5 
--env="DNS_DOMAIN=cluster" 
--env="POD_NAMESPACE=default"

#只打印,不执行
kubectl run nginx --image=nginx --dry-run

#重启策略
kubectl run -i -t busybox --image=busybox --restart=Never
4)set

配置应用资源,这个命令可以更改现有的应用程序资源。

kubectl set image -f FILENAME | TYPE NAME

1.image

#将deployment nginx的容器设置为nginx:1.9.1
kubectl set image deployment nginx nginx=nginx:1.9.1

#将所有deployment和rc的nginx容器的镜像更新为nginx:1.9.1
kubectl set image deployment,rc nginx=nginx:1.9.1 --all

2.resources
为Pod模板指定计算资源请求。如果一个Pod被成功部署,这个命令将保证Pod请求的资源数量。

kubectl set resources -f FILENAME | TYPE NAME
#部署niginx容器,cpu限制为200m,内存设置为512Mi
kubectl set resources deployment nginx --containers=nginx 
--limits=cpu=200m,memory=512Mi

#为deployment nginx中的所有容器设置资源请求限制
kubectl set resources deployment nginx 
--limits=cpu=200m,memory=512Mi 
--requests=cpu=100m,memory=256Mi

#删除deployment nginx中容器资源的资源请求
kubectl set resources deployment nginx --limits=cpu=0,memory=0 
--requests=cpu=0,memory=0
5)get

显示一个或多个资源。kubectl get默认隐藏已停止的资源,可以通过–show-all标志来查看任务资源的完整结果

kubectl get pods

kubectl get pods -o wide
6)explain

资源记录。获取资源及其字段的文档。

kubectl explain pods

#获取资源的特定字段的文档
kubectl explain pods.spec.containers
7)edit

在服务器上使用默认编辑器资源,使用这个命令可以编辑多个对象,然后一次性地应用更改。

#编辑名为nginx的服务
kubectl edit svc nginx

#在YAML中编辑部署nginx-deployment,并将修改的配置保存在其注释中
kubectl edit deployment nginx-deployment -o yaml --save-config
8)delete

通过指定文件名、stdin、资源名称、资源标签选择器来删除资源。

1.删除SVC

(base) [root@bigdata1 data]# kubectl delete svc nginx
service "nginx" deleted

2.删除RC

(base) [root@bigdata1 data]# kubectl delete rs nginx-deployment-5864557f99
replicaset.apps "nginx-deployment-5864557f99" deleted

3.删除Deployment

(base) [root@bigdata1 data]# kubectl delete deployment nginx
deployment.apps "nginx" deleted

4.删除Pod

# 强制删除Pod
(base) [root@bigdata1 data]# kubectl delete pod nginx-6799fc88d8-hqrm8 --force
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
pod "nginx-6799fc88d8-hqrm8" force deleted

#删除所有的pod
kubectl delete pods --all

# 删除标签为name=myLabel的Pod和服务
kubectl delete pods,services -l name=myLabel
9)rollout

管理资源对象的部署。有效的资源对象包括:deployment、daemonsets

1.history

#查看以前部署的版本和配置。查看deployment资源的部署历史
kubectl rollout history deployment nginx

#查看daemonset revision为3的细节
kubectl rollout history daemonset nginx --revision=3

2.pause
将指定的资源标记为已暂停,已暂停资源将不会由控制器调度。使用kubectl rollout resume恢复暂停的资源,目前仅支持暂停deployment资源。

#将nginx部署标记为已暂停
kubectl rollout pause deployment nginx

3.resume
恢复暂停资源,暂停的资源将不会被控制器调度。通过恢复资源,允许再次调度。目前仅deployment支持从暂停中恢复。

#恢复一个已经暂停的deployment
kubectl rollout resume deployment nginx

4.status

#显示deployment部署的状态
kubectl rollout status deployment nginx

5.undo
回滚到先前的部署

kubectl rollout undo deployment nginx

#回滚到daemonset第3个修订版
kubectl rollout undo daemonset nginx --to-revision=3
10)rolling-update

执行指定的RC进行滚动更新,使用新的RC控制器替换旧的RC控制器,逐步使用新的Pod Template替换旧的Pod。新旧RC必须在同一个namespace中,并覆盖其选择器中至少一个标签(通常是版本号),以便选择器可以区分新旧版本RC。

#将frontend-v1的Pod更新为frontend-v2,只需更改镜像即可
kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2

#通过更改镜像来更新前端的Pod,并保留旧名称
kubectl rolling-update frontend --image=image:v2

#终止并回滚正在进行的升级 *** 作
kubectl rolling-update frontend-v1 frontend-v2 --rollback
11)scale

为deployment、RS、RC或Job设置新的规模。

#将名为foo的RS资源调整为3个
kubectl scale --replicas=3 rs foo

#将名为nginx-deployment的deployment资源调整为3个
kubectl scale deployment nginx-deployment --replicas=3
12)autoscale

创建自动规模伸缩器,可自动调整并设置在k8s集群中运行的Pod数量。通过名称查找Deployment、ReplicaSet或ReplicationController,并创建一个使用指定资源状态作为参考的自动规模伸缩器,autoscale可以根据需要自动增加或减少系统中部署的Pod数量。

#自动缩放deployment nginx,Pod数量在2到10之间,参考资源是CPU的利用率,使用默认的自动缩放策略
kubectl autoscale deployment nginx --min=2 --max=10

#自动缩放rc nginx,Pod数量介于1到5之间,当CPU利用率为80%时,启动缩放调整
kubectl autoscale rc nginx --max=5 --cpu-percent=80

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5712203.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存