我有一个Kubernetes集群(外部ips: 1.2.3.4,2.3.4.5,3.4.5.6),我想在这个集群的5000端口上托管一个docker注册中心。现在为了实现这一点,我用外部别名做了一个测试,它是有效的。这使得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现在为了重用外部配置,我想把它放到一个configmap中。所以所有的yamls可以只引用configmap,当它们发生变化时,我们不必手动更新外部别名。如何将I数组放入configmap?
我当前(不工作)的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?
发布于 2018-04-25 18:02:37
这里有两个问题:
apiVersion:外部类型:外部元数据:名称:外部别名命名空间:默认数据: v1 -ips.list:|外部别名:- 1.2.3.4 - 2.3.4.5 -3.4.5.6
您需要一个带外模板系统,用于将这些外部IP添加到服务中。或者,使用入口控件,您只需配置一次外部it,然后使用它来多路复用群集内的所有HTTP服务。通过这种方式,您可以只管理一个服务的IP。
发布于 2018-04-25 19:19:05
ffledgling的答案是正确的,但我认为"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“可以是任何东西,因为它们只是键。
https://stackoverflow.com/questions/50019137
复制相似问题