Pod:运行于Kubernetes中的容器
为pod创建一个简单的yaml描述文件
在本地保存kubia-manual.yaml文件
#cat kubia-manual.yaml
apiVersion: v1
kind: Pod #指明资源类型是pod
metadata:
name: kubia-manual #pod的名字
spec:
containers: #包含的容器,可以是多个啊
- image: luksa/kubia #容器使用的镜像
name: kubia #容器名字
ports:
- containerPort: 8080 #容器监听端口
protocol: TCP这个配置文件在基础篇出现过,这里可以了解下他们的含义了。
创建pod与了解它
告诉kubernetes,让它按照yaml的描述为我们部署上述资源
kubectl create帮助我们创建了pod,查看下
了解pod的细节
查看pod和container的日志
MaxClloud也提供了较为全面的Pod管理方式,类似终端访问、日志查看等操作也可以借助MaxCloud来完成。


本地访问容器服务
我们在基础篇使用了LoadBalancer来访问服务,但这个是要花钱的,同时我们绝大多数服务是内网环境。所以我们试下更安全的方式,这次不用LB(LoadBalancer简称)了。
首先打开一个本地代理,它能将你的请求转发给容器,kubectl全部帮你做这些事情
提示转发通道打开,然后从另外一个控制台访问吧
port-forward 非常实用,大家忘记了可以常来翻翻这段的用法
使用命名空间对资源进行分组
命名空间,我们其实已经在用了,大家就在各自的命名空间中做实验。
创建一个命名空间很简单,可以使用指令
或使用yaml描述
我们使用命名空间是用来隔离资源的,如pod,我们可以让上述服务部署到指定的命名空间。
如果不指定命名空间,那申请的资源默认使用你当前所在命名空间,可以使用 kubens 查看
此实验容易在多人环境中名字冲突,大家可以尝试自定义命名空间。如果理解了,也可以不用做,毕竟命名空间操作的时候并不多。

给pod打上标签
namespace中的pod会越来越多,为了筛选,我们都会使用标签
创建它
运行如下指令体会下标签功效
如果对标签不满意,可以增删改
修改标签
如果不带上 --overwrite选项,代表新增,如果已经存在会提示操作失败。
增加标签
上述修改指令中标签名字不存在会自动添加标签
删除标签
修改标签时,将value置空就代表了删除标签
使用标签做选择
前面已经有指令练习过了,常用的是含有指定标签的资源,也可以列出不含标签的资源,如
将pod部署到指定节点
这个操作非常重要,我们经常会用到。因为我们每个团队有各自的节点,可以避免互相争抢。
首先我们先看看节点上的标签
还是比较多的,我们结合内部需要,定制了我们关心标签
现在让我们部署到 node.spotmax/team=dsp 节点上
创建并查看
停止和删除pod
很多种方法,可以根据自己需要删除
OK!大家到这里就完成了关于pod的所有实验,是很重要的一个内容,打交道最多的概念。
加油!我们进入更有趣的环节!
思考题
标签是用来做什么的?
命名空间和标签在筛选资源方面有什么不同?
最后更新于
这有帮助吗?