Kubernetes 将 Pod 调度到不同节点

标签 kubernetes

使用复制 Controller ,当我安排 2(两个)Pod 副本时,我希望每个节点(虚拟机)中各有 1(一)个副本。相反,我发现两个副本都是在同一个 Pod 中创建的。这将使 1 个节点成为我需要避免的单点故障。

对于 2 个 Pod:节点 A 中有 1 个 Pod,节点 B 中有 1 个 Pod

对于 3 个 Pod:节点 A 中有 2 个 Pod,节点 B 中有 1 个 Pod,kubernetes 可以根据资源可用性进行调度

对哪些配置不正确有什么建议吗?

apiVersion: v1
kind: ReplicationController
metadata:
  name: myweb-rc
spec:
  replicas: 2
  selector:
    role: "myweb"
  template:
metadata:
  labels:
    role: "myweb"
spec:
  containers:
  - name: tomcat

    image: myregistry.my.com/dev/cert/my-web/myweb/deployment_build_app-671-354-1.0.0-snapshot
    ports:
      - name: tomcat
        containerPort: 8080
    readinessProbe:
        httpGet:
             path: /app
             port: 8080
        initialDelaySeconds: 30
        timeoutSeconds: 1
    resources:
        requests:
           cpu: 1000m
           memory: 100Mi
        limits:
           cpu: 2000m
           memory: 7629Mi
  imagePullSecrets:
    - name: myregistrykey
  nodeSelector:
      kubernetes.io/hostname: myapp01

最佳答案

您没有用相同的键值对标记所有节点是否可行?

您需要确保您希望 Kubernetes 调度 pod 的每个节点都具有相同的键值对标签,并且配置相似,因为 Kubernetes 只会在标记有 kubernetes.io/hostname 的节点上进行调度:myapp01 和配置与复制 Controller 中定义的内容匹配。

关于Kubernetes 将 Pod 调度到不同节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37910275/

相关文章:

kubernetes - Kubernetes Pod故障排除

nginx - 如何在Kubernetes上访问简单的Nginx部署?

kubernetes - 如何在 Rancher 中启用挂载传播 - Kubernetes 功能门?

kubernetes - 如何将文件从一个命名空间中的 pod 复制到另一个命名空间中的 pod

kubernetes - 如何更新在 kubernetes 中运行的一组 pod?

kubernetes - 如何查询kubernetes节点可用的总内存

amazon-web-services - 创建k8s资源并等待完成继续下一步

kubernetes - 如何在不清除文件夹的情况下挂载包含 ConfigMap 键/值内容的文件?

kubernetes - 如何限制来自kubernetes内部pod的外部服务中的源IP

kubernetes - 节点池与一个池中的节点数