一、创建资源
1.一般创建资源会有两种方式:通过文件或者命令创建
通过文件创建一个Deployment
kubectl create -f /path/to/deployment.yaml
cat /path/to/deployment.yaml | kubectl create -f -
另一种方式
kubectl apply -f /path/to/deployment.yaml
2.通过kubectl命令直接创建
kubectl run nginx_app --image=nginx:1.9.1 --replicas=3
3.更新资源的命令
kubectl edit:相当于先用get去获取资源,然后进行更新,最后对更新后的资源进行apply
kubectl edit deployment/nginx_app
kubectl patch:使用补丁修改、更新某个资源的字段,比如更新某个node
kubectl patch node/node-0 -p '{"spec":{"unschedulable":true}}'
kubectl patch -f node-0.json -p '{"spec": {"unschedulable": "true"}}'
kubectl replace:使用配置文件来替换资源
kubectl replace -f /path/to/new_nginx_app.yaml
二、查看资源
一般命令的格式
kubectl get <resource_type>
获取K8s集群下pod的信息
kubectl get pod
更加详细的信息
kubectl get pod -o wide
指定资源的信息格式【kubectl get 】
kubectl get deployment/nginx_app -o wide
对指定的资源进行格式化输出【json、yaml等】
kubectl get deployment/nginx_app -o json
三、部署命令
部署命令包括资源的运行管理命令、扩容和缩容命令和自动扩缩容命令
1.rollout命令
- 查看部署状态
--->更新
kubectl set image deployment/nginx_app nginx=nginx:1.9.1
--->查看
kubectl rollout status deployment/nginx_app
- 暂停/恢复
--->暂停
kubectl rollout pause deployment/nginx_app
--->完成所有的更新操作命令后进行恢复
kubectl rollout resume deployment/nginx_app
- 回滚
--->查看历史版本信息
kubectl rollout history deployment/nginx_app
--->回滚
kubectl rollout undo deployment/nginx_app
--->指定版本号回滚至指定版本
kubectl rollout undo deployment/nginx_app --to-revision=<version_index>
2.scale命令
- 扩容
kubectl scale deployment/nginx_app --replicas=5
- 缩容【小于5(即当前副本数)】
kubectl scale deployment/nginx_app --replicas=3
- 条件直接限制
kubectl scale --current-replicas=5 --replicas=3 deployment/nginx_app
3.autoscale命令
- 基于CPU的使用率创建3-10个pod
kubectl autoscale deployment/nginx_app --min=3 --max=10 --cpu_percent=80
四、集群管理命令
1.cordon & uncordon命令
- 不可调度
kubectl cordon node-0
- 节点维护使用,驱逐所有pods
kubectl drain node-0
- 维护完成后,可再设置该节点为可调度
kubectl uncordon node-0
2.taint命令
【仅能作用于节点资源,通常会结合pod的tolerations字段结合使用】
- 设置taint
kubecl taint nodes node-0 key1=value1:NoSchedule
- 移除taint
kubecl taint nodes node-0 key1:NoSchedule-
五、其他补充
- 简单进行故障定位
kubectl describe deployment/nginx_app
kubectl logs nginx_pods
kubectl exec nginx_pod -c nginx-app <command>
- 查看K8s支持的完整资源列表
kubectl api-resources
- 查看K8s支持的api版本
kubectl api-versions