我正在尝试使用部署/ RC /副本集来模拟kubernetes中的守护进程集。
我想要实现的目标:
由于daemon-set类在每个节点上部署POD,我希望在每个节点上部署pod,但没有kind daemonset。
有什么办法吗?找不到合适的方法。
答案 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。
希望对你有所帮助.....