gpt4 book ai didi

Kubernetes - 在 configmap 中指定 externalips

转载 作者:行者123 更新时间:2023-12-03 22:28:11 24 4
gpt4 key购买 nike

我有一个 Kubernetes 集群(外部 ips:1.2.3.4、2.3.4.5、3.4.5.6)我想在这个集群上的端口 5000 上托管一个 docker registry。现在为了启用它,我用 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 配置,我想将其放入配置映射中。所以所有的 yaml 都可以只引用 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 中?

最佳答案

这里有两个问题:

  1. 在创建 configmap 本身时存在语法错误。 Config map 希望你列出一堆文件和它们的内容,所以正确的语法应该是这样的:

    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
  2. 我认为不可能引用您为模板化服务规范而创建的配置映射。因此,即使您设法正确创建了 configmap,您仍然无法将其作为不同服务定义的一部分进行重用。

您需要一个可用于将这些外部 IP 添加到服务的带外模板系统。或者,使用入口控制,您必须使用外部 IP 配置一次,然后使用它来多路复用集群内的所有 HTTP 服务。这样一来,您无论如何都只能管理一项服务的 IP。

关于Kubernetes - 在 configmap 中指定 externalips,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50019137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com