Pod、ReplicaSet、Deployment、Service的关系。
Pod:k8s管理的最小单位,包括一个或多个容器,是提供实际业务服务的组件。
ReplicaSet(rs):是Pod的管理控制组件,监控Pod的健康状况,保障Pod按照用户的期望去运行。rs是ReplicationController组件的升级版,增加了标签选择器的范围选择功能。
Deployment:可管理ReplicaSet、Pod,实现Pod应用的滚动升级和回滚、扩容和缩容。
Service:集群中Pod的数量和访问地址可能是变化的,这些Pod中的业务应用需要对外提供服务,可通过Service对外提供统一服务地址,Service通过标签选择器,匹配一组提供服务的Pod,从而对客户端隔离了后端Pod的变化。
下面通过示例代码,看看这几类资源对象的关系。
1、建立运行nginx的pod
通过Deployment创建pod,创建Service绑定运行nginx的pod
[root@k8s01 test]# vi mynginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: dzzh-nginx
namespace: dmgeo-test
spec:
replicas: 2
selector:
matchLabels:
app: dzzh-nginx
template:
metadata:
namespace: dmgeo-test
labels:
app: dzzh-nginx
spec:
containers:
- name: dzzh-nginx
image: nginx:latest
ports:
- name: http
containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: dzzh-nginx
namespace: dmgeo-test
spec:
selector:
app: dzzh-nginx
ports:
- name: http
port: 80
targetPort: 80
2、通过kubectl创建并查看资源对象
[root@k8s01 test]# kubectl apply -f mynginx.yaml
deployment.apps/dzzh-nginx created
service/dzzh-nginx created
[root@k8s01 test]#
[root@k8s01 test]# kubectl get all -n dmgeo-test
NAME READY STATUS RESTARTS AGE
pod/dzzh-nginx-f4c65cc66-n2j5z 1/1 Running 0 5m36s
pod/dzzh-nginx-f4c65cc66-r2wms 1/1 Running 0 5m36s
NAME TY