Как предоставить услугу kubernetes для публики без жесткого кодирования для миньонов IP?
У меня кластер kubernetes работает с 2 миньонов. В настоящее время я делаю свой сервис доступным в 2 этапа:
Запустите контроллер репликации и модульПолучить миньон IP (используяkubectl get minions
) и установите его какpublicIPs для службы.Какова рекомендуемая практика предоставления услуг населению? Мой подход кажется неправильным, потому что я жестко кодирую IP-адреса отдельных миньонов-IP. Похоже, что он также игнорирует возможности балансировки нагрузки сервисов kubernetes, потому что клиентам придется напрямую обращаться к сервисам, работающим на отдельных миньонах.
Для настройки контроллера репликации и модуля я использую:
id: frontend-controller
kind: ReplicationController
apiVersion: v1beta1
desiredState:
replicas: 2
replicaSelector:
name: frontend-pod
podTemplate:
desiredState:
manifest:
version: v1beta1
id: frontend-pod
containers:
- name: sinatra-docker-demo
image: madisn/sinatra_docker_demo
ports:
- name: http-server
containerPort: 4567
labels:
name: frontend-pod
Для настройки сервиса (после получения миньонов ip-ов):
kind: Service
id: frontend-service
apiVersion: v1beta1
port: 8000
containerPort: http-server
selector:
name: frontend-pod
labels:
name: frontend
publicIPs: [10.245.1.3, 10.245.1.4]