amazon-web-services - 无法从所有节点远程登录 K8S ClientIP 服务
问题描述
当我尝试在集群中公开服务时,我正在努力使用 K8S 网络。特别是我需要部署一个私有容器注册表(通过 K8S)并将其公开为 clusterIP 服务。
为了做到这一点,我遵循了这篇文章
目前我不需要任何特定的卷,我只想在集群内公开服务。
这是 POD yml 文件:
apiVersion: v1
kind: Pod
metadata:
name: registry
labels:
app: registry
namespace: default
spec:
containers:
- name: registry
image: registry:2
imagePullPolicy: Always
ports:
- containerPort: 5000
虽然这是我的服务文件:
---
kind: Service
apiVersion: v1
metadata:
name: registry
namespace: default
spec:
selector:
app: registry
ports:
- port: 5000
targetPort: 5000
这两个对象都是通过kubectl create -f <FILE_NAME>
这些是我暴露的服务
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 55m
registry ClusterIP 10.43.198.164 <none> 5000/TCP 10m
虽然这是我的服务描述列表
Name: kubernetes
Namespace: default
Labels: component=apiserver
provider=kubernetes
Annotations: <none>
Selector: <none>
Type: ClusterIP
IP: 10.43.0.1
Port: https 443/TCP
TargetPort: 6443/TCP
Endpoints: 172.31.5.173:6443
Session Affinity: ClientIP
Events: <none>
Name: registry
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=registry
Type: ClusterIP
IP: 10.43.198.164
Port: <unset> 5000/TCP
TargetPort: 5000/TCP
Endpoints: 10.42.1.4:5000
Session Affinity: None
Events: <none>
当我telnet 10.43.198.164 5000
在部署 pod 的同一个节点上运行时,一切正常,而如果我在另一个节点(它是一个 2 节点集群)中启动它,该命令仍然是附加的。
节点是 CentOS 7 的 AWS ec2 实例
Kubernetes 在 1.8.3 版本下,通过 RANCHER RKE 部署
我发现了这个问题的几个问题,但没有任何东西可以帮助我调查这个问题。
在这里您可以找到用于实例化集群的 RKE 配置文件
#{{ ansible_managed }}
nodes:
- address: node1
user: user
role: [controlplane,worker,etcd]
ssh_key_path: path
- address: node2
user: user
role: [worker]
ssh_key_path: path
ignore_docker_version: false
kubernetes_version: v1.10.1
network:
plugin:flannel
有什么帮助吗?谢谢。
解决方案
我不认为这个问题与 docker 注册表有关。看起来它在网络层。
调试问题:
- 你用什么CNI插件?
- 你能直接到达 pod (
telnet 10.42.1.4 5000
) 吗? - 您的节点 (
kubectl get nodes
) 和系统 pod (kubectl -n kube-system get pods
) 准备好了吗?
推荐阅读
- flutter - 我已经用 api 的 listview.builder 创建了一个卡片列表。现在我想在点击一张卡片时更改墨水池点击中的卡片颜色
- python - 模块“matplotlib.pyplot”没有属性“补丁”
- python - mod_wsgi-express 模块配置问题
- elasticsearch - 如何在 Kibana Dashboard 中禁用弹性用户访问
- linux - 使用ffmpeg时如何在shell脚本中创建具有输入结构的动态文件夹?
- python - 良好的训练准确度和验证准确度,但预测准确度较差
- c++ - 将 unique_ptr 转换为 char** 以将其作为函数参数传递 Func(char** arg)
- android - 我在哪里定义 navHostActivity 在我的 MainActivity 中使用导航组件开始导航
- java - 验证从 csv 获取的正确日期时间格式
- ios - XIB 给出了启动 WKWebView 的约束,但是有一个错误 A multiplier of 0 or a nil ..... 我该如何解决这个问题?