全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

容器实例访问IDC内网域名

最近更新时间:2023-04-25 11:19:06

如果您已成功在自建Kubernetes集群中创建云上的容器实例,对于容器实例访问自建Kubernetes集群内网服务的场景,需通过集群内的Coredns服务进行域名解析。

为实现从容器实例到集群Coredns服务的连通性,需进行如下配置:

步骤1:指定虚拟节点启动参数

虚拟节点启动参数中指定--cluster-dns为Coredns的服务地址。

Yaml示例如下:

...
          args:
            - --nodename=rbkci-virtual-kubelet
            # 指定虚拟节点的DNS配置,为集群内Coredns服务的IP地址
            - --cluster-dns=10.254.0.10
            - --cluster-domain=cluster.local
            - --kcilet-kubeconfig-path=/root/.kube/config
            - --enable-node-lease
 ...

步骤2:对目标容器使能kube-proxy,以支持ClusterIP访问

创建实例时可通过Pod template annotation对该pod开启kube-proxy:

Annotation Key Annotation Value示例 是否必填 描述
k8s.ksyun.com/kci-kube-proxy-enabled ‘true’ / ‘false’ 默认值:‘false’。当为true时,为该pod开启kube-proxy,使该pod具备访问集群内clusterIP类型服务的能力;否则不开启。

Yaml示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-rbkci
  namespace: default
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
        annotations:
            k8s.ksyun.com/kci-kube-proxy-enabled: 'true'  #对该pod使能kube-proxy
        labels:
            app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
      nodeName: rbkci-virtual-kubelet   #指定nodeName将pod调度到虚拟节点上

注:

Kube-proxy也支持通过启动参数--kube-proxy-enable在vk(即虚拟节点)维度进行全局配置(参数缺省值为false),开启后则默认该vk管理的所有pod都会开启Kube-proxy,支持ClusterIP访问。Pod annotation中配置优先级高于vk全局配置。

vk yaml示例如下:

...
       args:
            - --nodename=rbkci-virtual-kubelet
            # 指定虚拟节点的DNS配置,为集群内Coredns服务的IP地址
            - --cluster-dns=10.254.0.10
            - --cluster-domain=cluster.local
            - --kcilet-kubeconfig-path=/root/.kube/config
            - --enable-node-lease
            # 虚拟节点管理的所有实例使能kube-proxy
            - --kube-proxy-enable
...
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈