1. 创建资源
一般创建资源会有两种方式:通过文件或者命令创建。
1 | # 通过文件创建一个Deployment |
kubectl还提供了一些更新资源的命令,比如kubectl edit、kubectl patch和kubectl replace等。
1 | # kubectl edit:相当于先用get去获取资源,然后进行更新,最后对更新后的资源进行apply |
2. 查看资源
获取不同种类资源的信息。
1 | # 一般命令的格式会如下: |
3. 部署命令集
部署命令包括资源的运行管理命令、扩容和缩容命令和自动扩缩容命令。
3.1 rollout命令
管理资源的运行,比如eployment、Daemonet、StatefulSet等资源。
- 查看部署状态:比如更新deployment/nginx_app中容器的镜像后查看其更新的状态。
1 | kubectl set image deployment/nginx_app nginx=nginx:1.9.1 |
- 资源的暂停及恢复:发出一次或多次更新前暂停一个 Deployment,然后再恢复它,这样就能在Deployment暂停期间进行多次修复工作,而不会发出不必要的 rollout。
1 | # 暂停 |
- 回滚:如上对一个Deployment的image做了更新,但是如果遇到更新失败或误更新等情况时可以对其进行回滚。
1 | # 回滚之前先查看历史版本信息 |
3.2 scale命令
对一个Deployment、RS、StatefulSet进行扩/缩容。
1 | # 扩容 |
3.3 autoscale命令
通过创建一个autoscaler,可以自动选择和设置在K8s集群中Pod的数量。
1 | # 基于CPU的使用率创建3-10个pod |
4. 集群管理命令
4.1 cordon & uncordon命令
设置是否能够将pod调度到该节点上。
1 | # 不可调度 |
4.2 taint命令
目前仅能作用于节点资源,一般这个命令通常会结合pod的tolerations字段结合使用,对于没有设置对应toleration的pod是不会调度到有该taint的节点上的,这样就可以避免pod被调度到不合适的节点上。一个节点的taint一般会包括key、value和effect(effect只能在NoSchedule, PreferNoSchedule, NoExecute中取值)。
1 | # 设置taint |
如果pod想要被调度到上述设置了taint的节点node-0上,则需要在该pod的spec的tolerations字段设置:
1 | tolerations: |
5. 其它
1 | # 映射端口允许外部访问 |