使用Deployment在kubernetes中模拟守护进程集

时间:2017-06-15 06:38:39

标签: docker kubernetes

我正在尝试使用部署/ RC /副本集来模拟kubernetes中的守护进程集。

我想要实现的目标:

由于daemon-set类在每个节点上部署POD,我希望在每个节点上部署pod,但没有kind daemonset。

有什么办法吗?找不到合适的方法。

2 个答案:

答案 0 :(得分:1)

您可以使用 hostPort 在Kubernetes中使用部署/副本集来实现此目的。

假设您在Kubernetes集群中有4个节点,则可以使用hostPort和副本创建部署或复制集,其数量等于集群中的节点数。

例如,您希望在clustersize等于4的每个节点上运行nginx pod,然后在deployment / replicaset定义中提及hostport到容器端口。 kubernetes调度程序将无法在同一主机上安排多个pod,因此所有节点都至少安排了一个pod。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-hello
  labels:  
    tier: frontend
    app: nginx-hello
spec:
  replicas: 4
  template:
    metadata:
      labels:
        tier: frontend
        app: nginx-hello
    spec:
      containers:
      - name: nginx-hello
        image: nginxdemos/hello
        ports:
        - containerPort: 80
          hostPort: 8088

答案 1 :(得分:0)

您可以在此处查看更多用例

http://alesnosek.com/blog/2017/02/14/accessing-kubernetes-pods-from-outside-of-the-cluster/

使用相同hostPort的两个容器无法在同一节点上进行调度,并且hostPort的使用被视为特权。 因此它有一些限制,如

1)没有。副本不应该多于没有。将耗尽主机端的节点:)

2)所有主机必须处于健康状态,以便日程安排可以在每个主机上安排pod。

希望对你有所帮助.....