使用复制控制器,当我调度一个pod的2个(两个)副本时,我期望每个节点中各有1个(一个)副本。相反,我发现两个副本都是在同一个吊舱中创建的。这将使1个节点成为我需要避免的单点故障。
对于2个pod:节点A中的1个pod,节点B中的1个pod
对于3个吊舱:节点A中的2个吊舱,节点B中的1个吊舱,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
的节点上调度,并且配置与复制控制器中定义的匹配。
以下是两位工作人员的日志,这将有助于强调这个问题: 工人-0: 工人2:
我在一个有3个节点的kubernetes集群上运行nginx。 我想知道是否有任何好处,例如,有4个豆荚和限制他们的CPU/MEM约。节点容量的1/4相对于每个节点运行一个pod,限制CPU/MEM,以便pod可以使用整个节点的资源(为了简单起见,我们将cubernet服务排除在等式之外)。 我的感觉是,豆荚越少,开销就越小,每个节点使用1个豆荚应该是性能最好的? 提前致谢
并且不能ping它在其他节点上的副本。 以下是主机接口: 节点上的进程:
PostgreService.yaml 已创建服务的终结点为 然后我在pod(kubectl exec-it mark-dummy-pod bash)内运行ping172.31.6.149,但不工作。(ping localhost正在工作)
我们有一个应用程序,其中包含 4 个 pod,并使用负载均衡器运行!我们想尝试滚动更新,但我们不确定当 Pod 出现故障时会发生什么!文档不清楚!特别是《豆荚的终止》中的这句话: Pod将从服务的endpoint列表中删除,并且不再被视为复制控制器的运行Pod集的一部分。缓慢关闭的Pod可以继续为流量提供服务,因为负载平衡器(如服务代理)将它们从轮换中删除。 因此,如果有人能在以下问题上指导我们:
我希望我的pod在一段时间后(例如每周或每月)从我的部署中优雅地回收。如果我知道库伯内特斯命令,我知道我可以为此添加一个cron作业。 问题是在库伯内特斯做这件事的最好方法是什么,哪个命令会让我实现这个目标? 非常感谢你在这件事上帮助我。