У меня есть кластер Kubernetes (внешние ips: 1.2.3.4, 2.3.4.5, 3.4.5.6)
Я хочу разместить реестр докеров в этом кластере на порту 5000. Теперь, чтобы включить это, я провел тест с externalips, который работает. Это делает nginx доступным через порт 85.
apiVersion: v1
kind: Service
metadata:
name: nginx-extip
spec:
type: ClusterIP
ports:
- name: http
protocol: TCP
port: 85
targetPort: 80
selector:
app: nginx-extip
externalIPs:
- 1.2.3.4
- 2.3.4.5
- 3.4.5.6
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-extip
spec:
replicas: 1
template:
metadata:
labels:
app: nginx-extip
spec:
containers:
- name: nginx-extip-server
image: nginx
ports:
- containerPort: 80
Теперь, чтобы повторно использовать конфигурацию externalip, я хочу поместить это в карту конфигурации. Таким образом, все yamls могут просто ссылаться на configmap, и нам не нужно вручную обновлять externalips при их изменении. Как я могу поместить массив ips в configmap?
Моя текущая (не работающая) карта конфигурации:
apiVersion: v1
kind: ConfigMap
metadata:
name: externalips
namespace: default
data:
externalips:
- 1.2.3.4
- 2.3.4.5
- 3.4.5.6
Я получаю ошибку:
error: error validating "static-ips-configmap.yml": error validating data:
ValidationError(ConfigMap.data.externalips): invalid type for
io.k8s.api.core.v1.ConfigMap.data: got "array", expected "string";
if you choose to ignore these errors, turn validation off with --validate=false
Как я могу поместить эти IP в configmap?