k8s系列(七:实例)DaemonSet控制器

DaemonSet在整个集群的每一个节点上运行指定pod的一个副本并且只能是一个副本,或者是在集群中某些符合选择器的节点上运行一个指定的pod副本,用于实现系统级的管理功能,可以把节点上的某个目录作为存储卷关联到pod中,让pod实现某些管理功能

定义 daemonset-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: filebeat-ds
  namespace: default
spec:
  selector:
    matchLabels:
      app: filebeat
      release: stable
  template:
    metadata:
      labels:
        app: filebeat
        release: stable
    spec:
      containers:
      - name: filebeat
        image: filebeat:5.6.5-alpine
        env:
        - name: RESIS_HOST
          value: redis.default.svc.cluster.local
        - name: REDIS_LOG_LEVEL
          value: info
 

执行声明创建

使用命令为redis创建服务

k8s系列(七:实例)DaemonSet控制器_第1张图片

交互式命令访问redis pod

k8s系列(七:实例)DaemonSet控制器_第2张图片

滚动更新

kubectl set image daemonset filebeat-ds filebeat=filebeat:5.5.7

daemonset可以结合hostnetwork使用:用ds起一个nginx,template定义的podhostnetwork为true,这样直接用节点的80端口就能访问nginx

你可能感兴趣的:(k8s)