Как мне настроить службу и / или вход для обработки включения и выключения сотен этих развертываний на основе следующих ограничений:
foo-1
, последующие будут названы однозначноNodePort
Развертывания будут создаваться и удаляться индивидуально, а не как группа.
apiVersion: apps/v1
kind: Deployment
metadata:
name: foo-1
labels:
app: foo
spec:
replicas: 1
selector:
matchLabels:
app: foo
template:
metadata:
labels:
app: foo
spec:
containers:
- name: foo
image: bar/baz:latest
ports:
- containerPort: 83
name: listen
- containerPort: 85
name: serve
Я использую GKE, который, как мне кажется, имеет брандмауэр, который не позволяет мне напрямую обращаться к узлам. Я не против отключения брандмауэра, но я бы предпочел сделать это через LoadBalancer, если это возможно.
Я бы порекомендовал вам начать с перемещения вашего Deployment
в некую абстракцию. Вы можете сделать это с Карта Шлем или Kustomize.
Такая абстракция позволит вам сделать обслуживание что соответствует конкретному Развертывание динамически. Затем вы можете выставить каждый Service
разными способами, включая NodePort
. (Я бы не рекомендовал это. Подумайте о ClusterIP, но это зависит от ваших потребностей.)
Например, Helm Chart позволяет range
через порты.