Скорее всего, это проблема вашей службы Kubernetes и / или развертывания. GKE автоматически предоставит правила брандмауэра, необходимые для портов, сопоставленных с ресурсом Service
.
Убедитесь, что вы выставили port 80
на Service
, а также сопоставили его с действительным портом на Deployment
Pods
Вот пример использования Deployment
и Service
для показа модуля nginx:
deployment.yaml:
apiVersion: apps/v1 # API Version of this Object
kind: Deployment # This Object Type
metadata: # Allows you to specify custom metadata
name: nginx # Specifies the name of this object
spec: # The official specification matching object type schema
selector: # Label selector for pods
matchLabels: # Must match these label(s)
app: nginx # Custom label with value
template: # Template describes the pods that are created
metadata: # Standard objects metadata
labels: # Labels used to group/categorize objects
app: nginx # The name of this template
spec: # Specification of the desired behaviour of this pod
containers: # List of containers belonging to this pod (cannot be changed/updated)
- name: nginx # Name of this container
image: nginx # Docker image used for this container
ports: # Port mapping(s)
- containerPort: 80 # Number of port to expose on this pods ip
service.yaml:
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
type: LoadBalancer
selector:
app: nginx
ports:
- name: http
port: 80
targetPort: 80
Чтобы увидеть, какой IP-адрес (и порты) отображаются, вы можете запустить:
kubectl get services
и kubectl describe pod <your pod name
> `
Если у вас все еще есть проблемы, укажите выходные данные двух команд kubectl
, указанных выше.
Удачи!