hello云胜

技术与生活

0%

k8s常用命令

查看k8s都有哪些资源

1
kubectl api-resources

启动一个busybox用于测试

1
kubectl run busybox --rm=true --image=busybox --restart=Never -it

扩缩容

1
kubectl scale --replicate=3  deploy  xxx

回滚

1
2
kubectl rollout history deploy xxx 查看历史版本
kubectl rollout undo deploy xxx --to-revision=版本号

更新

1
2
#kubectl  set image  deployment资源名  容器名=镜像名
kubectl set image deployment.apps/nginx-deployment php-redis=tomcat:8 --record

–record是可以被加到历史列表里

1
2
#或者直接修改定义也行
kubectl edit deployment.v1.apps/nginx-deployment

#查看状态

1
kubectl rollout status deployment.v1.apps/nginx-deployment

查看历史并回滚

1
2
3
4
#查看更新历史-看看我们设置的历史总记录数是否生效了
kubectl rollout history deployment.v1.apps/nginx-deployment
#回滚
kubectl rollout undo deployment.v1.apps/nginx-deployment --to-revision=2

暂停

1
2
3
4
5
6
7
8
9
10
11
12
#暂停记录版本
kubectl rollout pause deployment.v1.apps/nginx-deployment
#多次更新操作。
##比如更新了资源限制
kubectl set resources deployment.v1.apps/nginx-deployment -c=nginx --limits=cpu=200m,memory=512Mi
##比如更新了镜像版本
kubectl set image deployment.apps/nginx-deployment php-redis=tomcat:8
##在继续操作多次
##看看历史版本有没有记录变化
kubectl rollout history deployment.v1.apps/nginx-deployment
#让多次累计生效
kubectl rollout resume deployment.v1.apps/nginx-deployment

hpa 动态扩缩容

按照cpu使用率等指标自动扩缩容

k8s的资源

1
2
# kubectl api-resources | grep hpa
horizontalpodautoscalers hpa autoscaling true HorizontalPodAutoscaler

hpa例子

1
2
3
4
5
6
7
8
9
10
11
12
13
##hpa配置 hpa.yaml
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: php-apache
spec:
maxReplicas: 10
minReplicas: 1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: php-apache
targetCPUUtilizationPercentage: 50