Kubernetes-在configmap中指定externalips
我有一个Kubernetes集群(外部IP:1.2.3.4、2.3.4.5、3.4.5.6) 我想在端口5000上的该群集上托管docker注册表。现在为了实现这一点,我用externalips做了一个测试,它可以工作。这使得nginx在端口85上可用Kubernetes-在configmap中指定externalips,kubernetes,config,Kubernetes,Config,我有一个Kubernetes集群(外部IP:1.2.3.4、2.3.4.5、3.4.5.6) 我想在端口5000上的该群集上托管docker注册表。现在为了实现这一点,我用externalips做了一个测试,它可以工作。这使得nginx在端口85上可用 apiVersion: v1 kind: Service metadata: name: nginx-extip spec: type: ClusterIP ports: - name: http protocol: TC
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配置,我想把它放到一个configmap中。因此,所有YAML都可以引用configmap,而不必在外部IP发生更改时手动更新它们。如何将IP阵列放入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?这里有两个问题:
apiVersion: v1
kind: ConfigMap
metadata:
name: externalips
namespace: default
data:
external-ips.list: |
externalips:
- 1.2.3.4
- 2.3.4.5
- 3.4.5.6
您需要一个带外模板系统,用于将这些外部IP添加到服务中。或者,使用入口控制,您必须使用外部IP配置一次,然后使用它多路复用集群内的所有HTTP服务。通过这种方式,您只需管理一项服务的IP。ffledgeling的回答是正确的,但我认为“external IPs.list”有点混淆 这是configmap yaml文件的外观:
apiVersion: v1
kind: ConfigMap
metadata:
name: externalips
namespace: default
data:
externalips: |
ips:
- 1.2.3.4
- 2.3.4.5
- 3.4.5.6
因此,“externalips”、“ips”、“external ips.list”可以是任何东西,因为它们只是键。config maps不列出一堆文件及其内容,而是键值对。这些可能是文件和内容,但不一定如此。@p.J.Meisch您在技术上是正确的,但我觉得这样的措辞会导致答案更加混乱。如果你有更好的措辞方式,请随时添加编辑。