文档首页 > > 用户指南> 插件管理

插件管理

分享
更新时间: 2020/06/11 GMT+08:00

kubernetes除了必要的支撑组件以外,其他的组件都是以插件的形式运行,如Kubernetes DNS,Kubernetes Dashboard等等。

插件是对现有功能的扩展,当前云容器实例提供了coredns插件供您使用,您可以在云容器实例界面上直接安装插件,从而方便的使用插件提供的功能。

coredns插件介绍

coredns插件为您的其他负载提供内部域名解析服务。建议您不要对本负载进行删除、升级操作,否则将导致内部域名解析服务无法正常使用。

安装插件

  1. 登录云容器实例管理控制台,左侧导航栏中选择插件管理 > 插件市场,单击右侧页面

    图1 coredns插件

  2. 选择“插件版本”,单击“提交”安装插件。

    安装2.5.9及以上版本的coredns插件时,还需配置如下参数:
    • 存根域:单击“添加”,您可对自定义的域名配置域名服务器,格式为一个键值对,键为DNS后缀域名,值为一个或一组DNS IP地址,如"acme.local -- 1.2.3.4,6.7.8.9"。
    • 上游域名服务器:解析除集群内服务域名及自定义域名之外的域名地址,格式为一个或一组DNS IP地址,例如"8.8.8.8","8.8.4.4"。

    安装完成后,您可以在“插件管理 > 插件实例”中看到已安装的插件,如下图。

    图2 coredns插件安装成功

为CoreDNS配置存根域

集群管理员可以修改CoreDNS Corefile的ConfigMap以更改服务发现的工作方式。使用插件proxy可对CoreDNS的存根域进行配置。

若集群管理员有一个位于10.150.0.1的Consul域名解析服务器,并且所有Consul的域名都带有.consul.local的后缀。在CoreDNS的ConfigMap中添加如下信息即可将该域名服务器配置在CoreDNS中:

consul.local:5353 {
        errors
        cache 30
        proxy . 10.150.0.1
    }

修改后最终的ConfigMap如下所示:

apiVersion: v1
data:
  Corefile: |-
    .:5353 {
        cache 30
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
          pods insecure
          upstream /etc/resolv.conf
          fallthrough in-addr.arpa ip6.arpa
        }
        loadbalance round_robin
        prometheus 0.0.0.0:9153
        proxy . /etc/resolv.conf
        reload
    }

    consul.local:5353 {
        errors
        cache 30
        proxy . 10.150.0.1
    }
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system

kubernetes中的域名解析逻辑

DNS策略可以在每个pod基础上进行设置,目前,Kubernetes支持DefaultClusterFirstClusterFirstWithHostNetNone四种DNS策略,具体请参见https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/。这些策略在pod-specific的dnsPolicy 字段中指定。

  • “Default”:如果dnsPolicy被设置为“Default”,则名称解析配置将从pod运行的节点继承。 自定义上游域名服务器和存根域不能够与这个策略一起使用。
  • “ClusterFirst”:如果dnsPolicy被设置为“ClusterFirst”,任何与配置的集群域后缀不匹配的DNS查询(例如,www.kubernetes.io)将转发到从该节点继承的上游名称服务器。集群管理员可能配置了额外的存根域和上游DNS服务器。
  • “ClusterFirstWithHostNet”:对于使用hostNetwork运行的Pod,您应该明确设置其DNS策略“ClusterFirstWithHostNet”。
  • “None”:它允许Pod忽略Kubernetes环境中的DNS设置。应使用dnsConfigPod规范中的字段提供所有DNS设置 。
  • Kubernetes 1.10及以上版本,支持Default、ClusterFirst、ClusterFirstWithHostNet和None四种策略;低于Kubernetes 1.10版本,仅支持default、ClusterFirst和ClusterFirstWithHostNet三种。
  • “Default”不是默认的DNS策略。如果dnsPolicy的Flag没有特别指明,则默认使用“ClusterFirst”。

路由请求流程:

  • 未配置存根域:没有匹配上配置的集群域名后缀的任何请求,例如 “www.kubernetes.io”,将会被转发到继承自节点的上游域名服务器。
  • 已配置存根域:如果配置了存根域和上游 DNS 服务器,DNS 查询将基于下面的流程对请求进行路由:
    1. 查询首先被发送到 coredns 中的 DNS 缓存层。
    2. 从缓存层,检查请求的后缀,并根据下面的情况转发到对应的 DNS 上:
      • 具有集群后缀的名字(例如“.cluster.local”):请求被发送到 coredns。
      • 具有存根域后缀的名字(例如“.acme.local”):请求被发送到配置的自定义 DNS 解析器(例如:监听在 1.2.3.4)。
      • 未能匹配上后缀的名字(例如“widget.com”):请求被转发到上游 DNS。
    图3 路由请求流程

后续处理

插件安装成功后,您还可以对插件做如下操作。

表1 其他操作

操作

说明

升级

单击,选择要升级的目标版本,然后单击“下一步”,确认新的配置信息,单击“提交”

回退

单击,选择要回退的目标版本,单击“提交”

删除

单击,然后单击“确认”

须知:

删除操作无法恢复,请谨慎操作。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问