首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes -在configmap中指定外部别名

Kubernetes -在configmap中指定外部别名
EN

Stack Overflow用户
提问于 2018-04-25 17:51:10
回答 2查看 7.5K关注 0票数 2

我有一个Kubernetes集群(外部ips: 1.2.3.4,2.3.4.5,3.4.5.6),我想在这个集群的5000端口上托管一个docker注册中心。现在为了实现这一点,我用外部别名做了一个测试,它是有效的。这使得nginx在端口85上可用。

代码语言:javascript
复制
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:

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: externalips
  namespace: default
data:
  externalips:
  - 1.2.3.4
  - 2.3.4.5
  - 3.4.5.6

我得到的错误是:

代码语言:javascript
复制
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?

EN

回答 2

Stack Overflow用户

发布于 2018-04-25 18:02:37

这里有两个问题:

  1. 在创建配置映射本身时存在语法错误。配置映射要求您列出一组文件及其内容,因此正确的语法应如下所示:

apiVersion:外部类型:外部元数据:名称:外部别名命名空间:默认数据: v1 -ips.list:|外部别名:- 1.2.3.4 - 2.3.4.5 -3.4.5.6

  • 我认为不可能引用您创建来作为服务规范模板的配置映射。因此,即使您成功地正确创建了配置映射,您仍然无法将其重用为不同服务定义的一部分。

您需要一个带外模板系统,用于将这些外部IP添加到服务中。或者,使用入口控件,您只需配置一次外部it,然后使用它来多路复用群集内的所有HTTP服务。通过这种方式,您可以只管理一个服务的IP。

票数 5
EN

Stack Overflow用户

发布于 2018-04-25 19:19:05

ffledgling的答案是正确的,但我认为"external-ips.list“有点混乱。

下面是configmap yaml文件的样子:

代码语言:javascript
复制
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“可以是任何东西,因为它们只是键。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50019137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档