默认情况下是否有任何额外的安全设置不允许在 IBM Cloud 上公开访问 Kubernetes 集群?
我使用 aNodePort
服务公开了该应用程序,但它无法通过 80 端口访问,甚至我尝试了其他端口。
但它是从 pod 开始工作的,例如使用curl
命令访问此公共负载均衡器。即使我可以ping这个LoadBalancer
的公共IP地址,这也发生在Ingress
。
该Ingress subdomain
也已启用。
这是我的 Kubernetes 集群中External LoadBalancer
的一个示例:
---
apiVersion: v1
kind: Pod
metadata:
labels:
app: hello-world
spec:
containers:
- image: us.icr.io/my-space/hello-world
imagePullPolicy: IfNotPresent
name: hello-world
ports:
- containerPort: 8080
name: http
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: hello-world
name: hello-world-service
spec:
ports:
- nodePort: 31190
port: 80
protocol: TCP
targetPort: 8080
selector:
app: hello-world
sessionAffinity: None
type: LoadBalancer
status:
loadBalancer: {}
公共负载均衡器在设计上对互联网开放,因此不会阻止您的 LB。但是,如果您在互联网和集群之间有防火墙,则可能会在流量尝试进入集群时切断流量。如果您执行"kubectl get svc xxx",您应该会看到该服务的外部 IP,并且应该可以根据上面的规范通过端口 80 访问。或者,可以使用工作线程节点公共 IP 和节点端口之一,并尝试从那里访问它。如果其中任何一个失败,你就在某处阻止了某些东西。
如果您仍然遇到麻烦,请在此处注册 https://bxcs-slack-invite.mybluemix.net/跳入松弛,然后在@john给我一个ping。
我们可以在那里为您提供详细的帮助,然后在我们确定您的问题后回来解决这篇文章。