Этого можно достичь с помощью IPPool Calico.
установите kubernetes с помощью calico.
вы создаете IPPool, скопируйте содержимое Yaml ниже в файл.
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
name: pool1
spec:
cidr: 192.168.0.0/18
ipipMode: Never
natOutgoing: true
disabled: false
nodeSelector: all()
и примените приведенный выше yaml с помощью следующей команды
calicoctl create -f pool1.yaml
Теперь разверните любую подобную службу
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
annotations:
"cni.projectcalico.org/ipv4pools": "[\"192.168.0.0/18\"]"
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Примените выше yaml, используя
kubectl apply -f nginx.yaml
Проверьте ip запущенных модулей, используя
kubectl get pods -o wide