Как настроить IPv6-адрес с помощью Google Kubernetes Load Balancer
Я хочу настроить IPv6-адрес для обслуживания в кластере GKE. Основная причина, по которой я хочу это сделать, заключается в том, что я настраиваю сертификат, управляемый Google, и подключаю службу к доменному имени. Сертификат требует настройки записей типа A и типа AAAA. Я зарезервировал IPv6-адрес в сети VPC, но не могу его назначить. Даже пытался отредактировать YAML для поддержки семейства IPv6, но он просто показывает ошибку
The Service "made-up-name" is invalid: spec.ipFamilies[1]: Invalid value: []string(nil): ipfamily IPv6 is not configured on cluster
Вот мой файл YAML на данный момент
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-stream-server-depl
spec:
replicas: 1
selector:
matchLabels:
app: my-stream-server
template:
metadata:
labels:
app: my-stream-server
spec:
containers:
- name: my-stream-server
image: gcr.io/reddo-346118/my-stream-server
---
apiVersion: v1
kind: Service
metadata:
name: my-stream-server-srv
spec:
ipFamilyPolicy: PreferDualStack
ipFamilies:
- IPv4
- IPv6
selector:
app: my-stream-server
ports:
- name: http
protocol: TCP
port: 8000
targetPort: 8000
- name: rtmp
protocol: TCP
port: 1935
targetPort: 1935
---
kind: Service
apiVersion: v1
metadata:
name: my-stream-server-rtmp
spec:
type: LoadBalancer
externalTrafficPolicy: Cluster
ports:
- name: rtmp
port: 1935
targetPort: 1935
protocol: TCP
selector:
app: my-stream-server
1 ответ
В настоящее время GKE не поддерживает IPv6 для модулей или служб. Однако вы можете назначить IPv6-адрес внешнему балансировщику нагрузки HTTP(S). Вы не сможете сделать это для Service типа LoadBalancer. Вместо этого вам потребуется создать ресурс Ingress, так как Ingress создает балансировщик нагрузки HTTP(S), который поддерживает IPv6.
Поддержка двойного стека в GKE в настоящее время запланирована на конец второго квартала 2022 года.