用来记录一些常用的命令,持续完善
常用命令
- kubectl config view
- kubectl apply -f {yaml}
- kubectl get pod/svc/deploy -n {namespace}
- kubectl set image deployment/{deploy} {container}={new image}
- kubectl logs -f {pod} -> 这个跟docker差不多
- kubectl exec -ti {pod} {command} -> 这个跟docker差不多
- kubectl delete pod/svc/deploy/rs {name}
Deployment
link: Deployments
- 创建
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector: # 定义要管理的pods
matchLabels:
app: nginx
template: # 指定创建pods的模板
metadata:
labels:
app: nginx
spec: # 指定如何创建容器
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
kubectl apply -f ***.yaml --record
指定
--record
来写入在资源注释kubernetes.io/change-cause
中执行的命令
- 查看
# 查看deploy
kubectl get deploy
# 查看更新状态
kubectl rollout status deploy/***
- 更新
kubectl --record deploy/*** set image {name}={new image}
# or
kubectl edit deploy/***
- 回滚
# 1. 检查修改历史
kubectl rollout history deploy/***
# 2. 查看具体某个历史的详细信息
kubectl rollout history deploy/*** --revision=*
# 3. 回滚到上一次操作
kubectl rollout undo deploy/***
# 4. 回滚到某次历史提交
kubectl rollout undo deploy/** --to-revision=2
- 伸缩
kubectl scale deploy/** --replicas=*
# 自动缩放 基于cpu使用率
kubectl autoscale deploy/** --min=10 --max=15 --cpu-percent=80
- 暂停和恢复
# 在更新之前修正错误
kubectl rollout pause deploy/***
kubectl rollout resume deploy/***
- 清理策略
- 可以在 Deployment 中设置 .spec.revisionHistoryLimit ,以指定保留多少此 Deployment 的 ReplicaSets。其余的将在后台进行垃圾回收。默认情况下,是10。
说明
- 显式将此字段设置为 0 将导致清理 Deployment 的所有历史记录,因此 Deployment 将无法回滚。
- 端口映射
# 如果线上一个服务使用的 clusterIP 并未向外部暴露端口,此时需要调试或临时在外部使用端口的时候,可以用端口映射的命令
kubectl port-forward service/*** 本地监听的端口:服务内部端口