Я полагаю, что вам может понадобиться одна служба, сопоставленная с двумя развертываниями, вы можете иметь два развертывания с именами bucket1 и bucket2 и иметь их с одной меткой app: buckets
, а затем иметь службу с селекторомвключая этот ярлык.
apiVersion: apps/v1
kind: Deployment
metadata:
name: bucket1
labels:
app: buckets
spec:
replicas: 3
selector:
matchLabels:
app: buckets
template:
metadata:
labels:
app: buckets
spec:
containers:
- name: bucket-container
image: bucketimage
ports:
- containerPort: 80
apiVersion: apps/v1
kind: Deployment
metadata:
name: bucket2
labels:
app: buckets
spec:
replicas: 3
selector:
matchLabels:
app: buckets
template:
metadata:
labels:
app: buckets
spec:
containers:
- name: bucket-container
image: bucketimage
ports:
- containerPort: 80
kind: Service
apiVersion: v1
metadata:
name: s3
spec:
selector:
app: buckets
ports:
- protocol: TCP
port: 80
Но еще один вопрос - зачем вам это?если и bucket1, и bucket2 содержат разную информацию / данные.
Как правило, в Kubernetes у вас будет одно развертывание с несколькими модулями / репликами для обслуживания данных либо в bucket1, либо в bucket2, предполагая, что данные одинаковы.Если данные отличаются, почему бы не иметь 2 развертываний с разными записями DNS.
Если вы используете K8s 1.11 или новее, вы также можете настроить сердцевины ConfigMap
в kube-system
Пространство имен, чтобы, возможно, получить то, к чему вы пытаетесь добраться, но с точки зрения DNS вы не можете иметь одну карту записей с двумя CNAME в соответствии с RFC 1034, раздел 3.6.2.Вы также не можете жестко закодировать IP-адреса в Kubernetes, так как ваши IP-адреса всегда меняются, когда ваши модули создаются / удаляются.