【发布时间】:2018-11-19 20:20:15
【问题描述】:
我用 Kubeadm 创建了一个 Kubernetes 集群,它有 3 个节点。它们的 IP 地址和主机名分别是 10.10.10.146/24(k8s1, master)、10.10.10.135/24(k8s2)、10.10.10.170/24(k8s3)。
现在我使用这个 yaml 文件创建一个包含 3 个 pod 的 nginx 服务:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-app
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-app
image: nginx:1.14.0
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-app-srv
spec:
type: ClusterIP
selector:
app: nginx
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
externalIPs:
- 10.10.100.1
最后一个 pod 被安排到 k8s2,其中两个被安排到 k8s3。
然后,如果我将 10.10.100.0/24 路由到 k8s2,则只有一个 pod 工作。如果到 k8s3,只有两个 pod 工作。如果到 k8s1,则没有 pod 工作。
我怎样才能使所有 pod 正常工作通过外部 IP 来自外部就像通过集群 IP 从内部 无论我将外部 IP 子网路由到哪个节点?或者这是不可能的,或者我需要其他东西,比如 Kubernetes Ingress?
【问题讨论】:
-
你为哪台主机配置了 ip 10.10.100.1?
-
@KunLi 我没有将 10.10.100.1 配置为接口上的真实 IP 地址。我只是将它添加到外部 IP 配置中并将我的路由器配置为将 10.10.100.0/24 路由到其中一个节点
-
外部IP应该手动配置,我想,尝试在你的三个节点之一上配置外部IP。
-
你必须使用入口
标签: kubernetes