【kubernetes/k8s概念】多集群联邦 kubefed

    Kubernetes Cluster Federation(简称 KubeFed)允许您通过托管集群中的一组 API 来协调多个 Kubernetes 集群的配置。,这些集群可能是跨地区(Region),也可能是在不同公有云供应商(Cloud Provider)上,亦或者是公司内部自行建立的集群。

KubeFed 概念

Federate联邦一组 Kubernetes 集群意味着,可以有效地为这些集群池创建一个通用接口,用于跨集群部署 Kubernetes 应用程序。
KubeFedKubernetes Cluster Federation 使用户能够联合多个 Kubernetes 集群,以实现跨多个集群的资源分配、服务发现、高可用性等。
Host Cluster用于公开 KubeFed API,运行 KubeFed 的控制平面集群。
Member Cluster通过 KubeFed API 注册并且 KubeFed 控制器具有身份验证凭据的集群。 主机集群也可以是成员集群。
Cluster Registration通过 kubefedctl join 命令加入到 host cluster 的集群
Endpoint表示域名系统 (DNS) 资源记录的资源。

1. KubeFed 架构 

    Federation v2 分为两个大部分:configuration 和 propagation。KubeFed 最大改变是将 API  Server 移除,通过 CRD 来完成 Federated Resources 的扩充。而 KubeFed Controller 则管理这些 CRD,并实现同步 Resources、跨集群编排等功能。

    KubeFed configuration 主要包含两个配置:       

  • Type configuration:定义了 KubeFed 管理哪些 API 类型,如上所示图表
  • Cluster configuration:定义了 KubeFed 管理哪些集群

    Type Configuration 又由三个基本概念:

  •   Templates: 定义了跨集群通用资源的表示
  •   Placement: 定义了资源想要放置的集群
  •   Overrides: 定义了每个集群字段级变化来应用于模板,也就是修改指定集群的 Federated 资源中的 spec.template 内容

    Propagation 涉及的机制是分发资源到联邦的集群

    这些基本概念提供了可供更高级别 API 使用的构建块:

  •   Status:收集 KubeFed 在所有联邦集群中分布的资源状态
  •   Policy:确定允许将资源分发到哪个集群子集
  •   Scheduling:  指的是一种决策能力,可以决定工作负载应该如何分布在不同的集群中,类似于人类操作员的方式

2. 安装 helm v3 版本

    下载 helm v3, 二进制文件 /usr/local/bin/helm 

 wget https://get.helm.sh/helm-v3.6.0-linux-amd64.tar.gz

     查看版本

# helm version
version.BuildInfo{Version:"v3.6.0", GitCommit:"7f2df6467771a75f5646b7f12afb408590ed1755", GitTreeState:"clean", GoVersion:"go1.16.3"}

     添加 repo

helm repo add kubefed-charts https://raw.githubusercontent.com/kubernetes-sigs/kubefed/master/charts

    查看 repo 列表

 # helm repo list
NAME              URL                                                                    
aliyun            https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts                 
stable            https://apphub.aliyuncs.com/stable                                     
kubefed-charts    https://raw.githubusercontent.com/kubernetes-sigs/kubefed/master/charts

    更新 repo 列表

# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "aliyun" chart repository
...Successfully got an update from the "kubefed-charts" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈

    安装 kubefed

    

3. kubefedctl 命令

   3.1 集群注册

  加入联邦:前提需要将 kube-config 加入到 config 配置中,包括 cluster context user。这个比较麻烦,看看是否有更好的方式

kubefedctl join test-2 --cluster-context test1-admin --host-cluster-context kubernetes-admin --v=2

   查看加入的集群

kubectl get kubefedclulsters -nkube-federation-system

  3.2 注销集群

kubefedctl unjoin test-2 --cluster-context test1-admin --host-cluster-context kubernetes-admin --v=2

参考:

  https://github.com/kubernetes-sigs/kubefed/blob/master/charts/kubefed/README.md

  https://github.com/kubernetes-sigs/kubefed/blob/master/docs/userguide.md

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值