Skip to content

1.Pod

​ 容器都是由镜像启动的,但在容器外面会包裹通过Pod将容器包裹起来这个是K8s的概念,在这个Pod里面可以有一个或多个容器,在k8s中统称为最小单元。

pod特征:

  • Pod里的所有容器都会调度在同一个节点上运行,
  • Pod中的所有容器会共享同一网络,它们有一个唯一的IP,就叫PodIP;
  • Pod中还有一个特殊的容器叫PaUse,它会优先启动然后进行IP分配,而后将其他容器都link到该容器上,实现网络共享

image-20240123112707589

2.Deployment

​ 在Pod的上一层就是ReplicaSet控制器,它主要负责管理Pod的副本数,但通常我们并不直接使用ReplicaSet,而是使用比ReplicaSet更高一级的DepLoyment。由DepLoyment管理RepLicaSet,它会自动帮我们创建和销毁RS,有了Deployment就可以实现应用的滚动更新。

image-20240123134342684

3.Service

​ Service,是Kubernetes用来实现Pod负载均衡的一个服务;要想实现Pod的负载均衡,首先需要通过labels为Pod打上特定的标签,而后创建Service时使用Selector选择对应的标签,最终通过节点的kube-proxy来完成负载均衡的规则创建

image-20240123135851549

shell
#iptables\ipvs规则
iptables -t nat -d serviceIP -j DNAT podIP1
#iptables\ipvs规则
iptables -t nat -d serviceIP -j DNAT podIP1

4.Namespace

​ 在Kubernetes中,名字空间(Namespace)提供一种机制,将同一集群中的资源划分为相互隔离的组。同一名字空间内的资源名称要唯一,但跨名字空间时没有这个要求

  • 对资源对象进行隔离:比如:Pod、DepLoyment、Service、将其划分为相互隔离的组
  • 对资源配额进行隔离:CPU,Memory,限制某个NS的可以使用的cpu和内存

image-20240123141724841

​ namespace仅能隔离带有名称空间的资源,而不带名称空间的资源不支持隔离,可以通过kubectlapi-resources查看哪些资源属于名称空间级别,哪些不属于名称空间级别。

  • 命名空间划分

按业务划分:shoping、edu

按环境划分:dev、prod

按团队划分