通过 Pod 合理管理容器
准备工作
1 | # 容器准备 |
1 | [root@k8s-master2 src]# cat Dockerfile |
1 | # 上传到镜像仓库 |
kubectl run 命令创建资源
1 | # run 命令 可以创建所有必要的组件 无需yaml文件 |
1 | # 查看 replicationcontroller |
1 | # 增加期望的副本数 |
1 | # 一步增加副本数 |
导出现有 pod 的 yaml 描述文件
1 | # 参考: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/ |
创建一个简单的yaml描述文件
1 | [root@k8s-master1 demo]# vim kubia-manual.yaml |
1 | # kubectl explain 查看支持的api对象 |
使用 kubectl create 来创建 pod
1 | # kubectl create -f 命令用于从YAML或者JSON文件创建任何资源(不只是POD) |
1 | # kubectl logs 查看应用程序日志 |
1 | # 获取多容器pod的日志 -c 指定容器名称 |
使用标签组织 pod
1 | # 常用的标签 |
1 | [root@k8s-master1 demo]# vim kubia-manual-with-labels.yaml |
1 | # 查看 pod 并列出所有标签 |
1 | # 根据标签名列出 pod |
1 | # 修改pod的标签 |
1 | # 给pod添加一个新标签 |
通过标签选择器列出pod子集
1 | # 标签选择器条件: |
1 | # 列出所有Team=A组的标签的pod |
1 | # 列出所有 有env 标签的app |
1 | # 列出 没有app 标签的pod |
标签选择器匹配
1 | # 反向条件选择 |
1 | # in 或 |
1 | # not in |
多条件标签选择器
1 | # ,分割条件 |
使用标签选择器来约束pod调度
1 | # 解决pod随机调度到工作节点 |
1 | [root@k8s-master1 demo]# kubectl get nodes |
将pod调度到特定节点
1 | # 在yaml文件中添加 节点选择器 |
调度到一个特定节点
1 | 1. 每个机器都有一个通有标签 即主机名 |
pod 的注解
1 | # 指定创建pod对象的人员姓名 |
使用命名空间对资源进行分组
1 | # 列出集群中的所有命名空间 |
1 | # 根据命名空间查找 pod |
1 | # 使用命名空间做k8s集群的用户隔离,多租户环境 |
创建命名空间
1 | # 从yaml文件创建 |
1 | # 使用命令创建 |
在命名空间中创建资源
1 | # 在yaml文件中指定 |
1 | # 创建资源的时候指定 |
命名空间提供的隔离
1 | 1. 命名空间将对象分隔到不同的组 |
停止和移除 pod
按 pod 名称删除
1 | # k8s终止该pod中的所有容器 |
使用标签选择器删除 pod
1 | # 先找到他们共有的标签条件 |
通过删除命名空间 来删除 pod
1 | 1. 不需要命名空间下的pod |
删除命名空间中的pod 保留命名空间
1 | [root@k8s-master1 demo]# kubectl delete pod --all -n lex-com |
注意 删除 pod 和 其他资源
1 | # 如果我们通过run命令创建的rc,他不会直接创建pod,而是先创建一个rc,再由rc创建pod |
删除命名空间中的所有资源
1 | # 可以删除rc和pod,也可以删除service |