Pod控制器入门
一、无状态控制器
ReplicationController:
已被放弃
ReplicaSet:
3个组件组成
1. 期望副本数
2. 标签选择器
3. Pod资源模板
Deployment:
目前管理无状态应用最好的控制器,支持滚动更新,回滚,运行在ReplicaSet控制器之上。
例1:
帮助:kubectl explain rs
vim rs-demo.yaml
apiVersion: apps/v1 kind: ReplicaSet metadata: name: myapp namespace: default spec: replicas: 2 selector: matchLabels: app: myapp release: canary template: metadata: name: myapp-pod labels: app: myapp release: canary environment: qa spec: containers: - name: myapp-container image: ikubernetes/myapp:v1 ports: - name: http containerPort: 80 livenessProbe: httpGet: port: http path: /index.html initialDelaySeconds: 1 periodSeconds: 3 readinessProbe: httpGet: port: http path: /index.html initialDelaySeconds: 1 periodSeconds: 3
DaemonSet:
确保每一个集群中的节点精确运行一个特定的Pod副本,系统级的后台服务,新节点加入后,自动添加。
帮助
kubectl explain ds
例1
vim ds-demo.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: redis namespace: default spec: replicas: 1 selector: matchLabels: app: redis role: logstor template: metadata: labels: app: redis role: logstor spec: containers: - name: redis image: redis:4.0-alpine ports: - name: redis containerPort: 6379 --- apiVersion: apps/v1 kind: DaemonSet metadata: name: myapp-ds namespace: default spec: selector: matchLabels: app: filebeat release: stable template: metadata: labels: app: filebeat release: stable spec: containers: - name: filebeat image: ikubernetes/filebeat:5.6.5-alpine env: - name: REDIS_HOST value: redis.default.svc.cluster.local - name: REDIS_LOG_LEVEL value: info
二、有状态控制器
StatefulSet:
每个应用单独控制
三、周期性控制器
job:
Cronjob:
停留在世界边缘,与之惜别