Нет доступа к портам публичного LoadBalancer или Ingress кластера Kubernetes в IBM Cloud
Есть ли какие-либо дополнительные настройки безопасности по умолчанию, которые не разрешают публичный доступ Kubernetes Cluster в IBM Cloud?
Я выставил приложение, используя a NodePort
сервис, но он недоступен через порт 80, и даже я пробовал другие порты.
Но он работает из модуля, например, при посещении этого общедоступного LoadBalancer с помощью curl
команда. Даже я могу пропинговать публичный IP-адрес этогоLoadBalancer
, это происходит и для Ingress
также.
В Ingress subdomain
также включен.
Это пример External LoadBalancer
в моем кластере Kubernetes:
---
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: {}
1 ответ
Публичные балансировщики нагрузки изначально открыты для Интернета, поэтому ничто не блокирует ваш LB. Однако, если у вас есть брандмауэр между Интернетом и кластером, вы можете отключать трафик, когда он пытается войти в кластер. Если вы выполните команду "kubectl get svc xxx", вы должны увидеть внешний IP-адрес службы, который должен быть доступен через порт 80 в соответствии с указанными выше спецификациями. Или вы можете использовать общедоступный IP-адрес одного из ваших рабочих узлов и порт узла и попробовать получить к нему доступ оттуда. Если один из них не работает, вы где-то что-то блокируете.
Если у вас все еще есть проблемы, расслабьтесь, зарегистрировавшись здесь https://bxcs-slack-invite.mybluemix.net/, а затем отправьте мне запрос на @john.
Мы можем вам подробно помочь, а затем вернемся и ответим на этот пост после того, как решим вашу проблему.