文章目录
Kubernetes(二)资源概况
kubernetes中有五种比较重要的资源:pod,namespace,label,deployment,service
Namespace
namespace是k8s中用来实现多套环境资源隔离的,默认情况下,k8s中所有pod都是可以相互访问的,但是在实际中,可能不想让某两个pod相互访问,此时就可以将这两个pod划分到不同的namespace中,形成逻辑隔离
查看所有ns:
获取某一ns下的pods
获取某一ns的详情
创建ns
删除ns
Pod
pod是k8s中最小的资源管理单位,程序必须要运行在容器中,容器必须要运行在Pod中,一个pod可以存在一个或多个容器,k8s中的组件也是以pod的形式运行
创建并运行pod
查看pod信息
查看pod详情
label
Label是k8s中的一个重要概念,用于给资源添加标签,来进行区分和选择,特点:
- Label是通过键值对的方式添加到各种资源对象上去,如Node,Pod,Service等
- 一个资源对象可以定义多个标签,一个标签可以打到多个资源对象上去
- 一个label是在对象创建时就自动创建,也可以在对象创建后进行动态的添加和删除
- 使用label selector来筛选标签label
- 基于等式的选择:label-name = “”
- 基于集合的选择:label-name in []
为pod打标签
根据标签获取pod
更新pod上的标签
deployment
在k8s中,Pod是最小的控制单元,但是k8s很少直接控制pod,一般通过pod控制器完成pod的控制,确保pod资源符合预期设定,当pod挂了,会对pod进行重启获取重建,deployment就是其中的一种pod
查看deployment信息:
deployment和pod之间的关联通过label
查看deployment详情:
删除deployment
service
虽然每个pod都会有自己单独的ip,但是这个ip会随着pod重建而重新分配一个ip,是变化的,而且这个ip仅仅是集群内部可见,外部无法访问,k8s通过service来解决这个问题,service是同一组pod的外部访问接口,可以用于实现服务发现和负载均衡,通过标签选择器找同一组的pod