本文主要记录解决自己学习和工作中的一个疑惑:k8s中的Pod/ReplicaSet/Deployment/Service这几个资源究竟是什么关系?

资源之间的关系

1)Pod是最小的调度单元,Pod启停容器镜像等;
2)Pod由ReplicaSet控制,ReplicaSet由Deployment控制,然后外部提供服务的是Service。

RS—>Pod

查看Pod:

$ kubectl get pods
Kubernetes-Pod/ReplicaSet/Deployment/Service关系(二十一)_Service

查看RS:

$ kubectl get rs
Kubernetes-Pod/ReplicaSet/Deployment/Service关系(二十一)_Service_02

查看Pod详情:

$ kubectl describe pods pod_name
Kubernetes-Pod/ReplicaSet/Deployment/Service关系(二十一)_Pod_03
我们可以通过kubectl describe pods pod_name看到Controlled By字段的值是ReplicaSet/rs_name,即Pod由RS控制

Deployment—>RS

查看RS:

$ kubectl get rs
Kubernetes-Pod/ReplicaSet/Deployment/Service关系(二十一)_Service_02

查看Deployment:

$ kubectl get deploy
Kubernetes-Pod/ReplicaSet/Deployment/Service关系(二十一)_Kubernetes_05

查看RS详情:

$ kubectl describe rs rs_name
Kubernetes-Pod/ReplicaSet/Deployment/Service关系(二十一)_deployment_06
我们可以通过kubectl describe rs rs_name看到Controlled By字段的值是Deployment/deploy_name,即RS由Deployment控制
  我们也可以通过kubectl describe deploy deploy_name查看某个deployment的详情,发现没没有Controlled By字段,deployment不受其他组件控制,需要用户去创建该资源,service则在deployment——>rs——>pod这一套流程的基础上对外提供服务。

参考书籍
《k8s in action》
《Kubernetes权威指南》