У меня есть кластер кубернетов, работающий с 2 миньонами. В настоящее время я предоставляю услугу в 2 этапа:
- Запустить контроллер репликации и pod
- Получить minion IP (используя
kubectl get minions
) и установить его как publicIPs для Сервиса.
Какова предлагаемая практика разоблачения услуги для общественности? Мой подход кажется неправильным, потому что я жестко кодирую IP-адреса отдельных миньонов IP-ов. Он также, кажется, обходит возможности балансировки нагрузки услуг кубернетов, поскольку клиентам приходилось напрямую обращаться к службам, работающим на отдельных миньонах.
Чтобы настроить контроллер репликации и модуль, я использую:
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
Чтобы настроить службу (после получения minion ip-s):
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]