一、背景
通过集群联邦,我们可以:
简化管理多个集群的Kubernetes 组件,如Deployment, Service 等
在多个集群之间分散工作负载,以提升应用的可靠性
跨集群的资源编排,依据编排策略在多个集群进行应用部署
在不同集群中,能更快速更容易地迁移应用
跨集群的服务发现,服务可以实现地理位置感知,以降低延迟(不一定必须用kubefed实现)
实践多云(Multi-cloud)或混合云(Hybird Cloud)的部署
使用场景
跨集群同步资源:正如您所料,同步资源是那些部署联合或分布式Kubernetes集群的人面临的核心挑战。Kubernetes中的机制可以自动同步运行在本地或远程系统,云而非云上的多个集群上的部署。
跨集群服务发现:这解决了自动配置DNS服务器和负载均衡器的功能。
这篇文章主要记录跨集群资源同步的内容,跨集群服务发现的开新的文章记录。
二、安装
helm 安装
可自行查找文档安装。
Controller Plan
Controller Plan 可以使用 Helm 部署(目前 Helm 还是使用 v2 版本),参考官方安装文档:https://github.com/kubernetes-sigs/kubefed/blob/master/charts/kubefed/README.md
添加源
$ helm repo add kubefed-charts https://raw.githubusercontent.com/kubernetes-sigs/kubefed/master/charts
搜索
$ helm search repo kubefed
安装
$ helm --namespace kube-federation-system upgrade -i kubefed kubefed-charts/kubefed --version=0.6.1 --create-namespace
Release "kubefed" does not exist. Installing it now.
NAME: kubefed
LAST DEPLOYED: Wed Aug 5 16:03:46 2020
NAMESPACE: kube-federation-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
kubefedctl
$ wget https://github.com/kubernetes-sigs/kubefed/releases/download/v0.6.1/kubefedctl-0.6.1-linux-amd64.tgz
$ tar -zxvf kubefedctl-0.6.1-linux-amd64.tgz
$ mv kubefedctl /usr/local/bin/
三、集群操作
在主集群上设置从集群context信息
参考我先前的文章 《kubernetes switch context》
kubectl config get-contexts
kubectl config use-context n1
kubectl config use-context context-cluster1-admin
从集群加入主集群
基本使用方式为:
kubefedctl join <集群名称CLUSTER> --cluster-context <要接入集群的 context NAME> --host-cluster-context <HOST 集群的 context name>
例如:
kubefedctl join n1 --cluster-context n1 --host-cluster-context context-cluster1-admin --v=2
kubefedctl join n2 --cluster-context n2 --host-cluster-context context-cluster1-admin --v=2
从集群解绑
kubefedctl unjoin n2 --cluster-context n2 --host-cluster-context context-cluster1-admin --v=2
获得集群信息
$ kubectl -n kube-federation-system get kubefedclusters
kubectl -n kube-federation-system get kubefedclusters -oyaml n1
四、跨集群同步资源
启用资源联邦化
对于 KubeFed 来说,资源管理分两类,一是资源的类型管理,另一个是被联邦(federated)的资源管理。
对于资源类型,kubefedctl 提供了 enable 来使新的资源可以被联邦管理:
$ helm search repo kubefed
0
其中可以使用以下的描述:
类型,即 Kind (比如 Deployment)
复数名词 (比如 deployments)
带 api group 的复数资源名词 (比如 deployment.apps)
缩写 (比如 deploy)
$ helm search repo kubefed
1
资源操作示例
创建ns
$ helm search repo kubefed
2
创建测试资源
$ helm search repo kubefed
3
$ helm search repo kubefed
4需要对ClusterRoleBinding 类型启用联邦化。
$ helm search repo kubefed
5$ helm search repo kubefed
3最后在n1 n2集群上运行结果如下:
确认正常运行:
常用命令备忘
$ helm search repo kubefed
7来源:https://blog.kelu.org/tech/2021/02/19/kubefed.html
还不过瘾?XOps 风向标!GOPS 2022 · 上海站正式来袭!GOPS 全球运维大会 2022 · 上海站正在努力进行中,欢迎长按下方二维码,了解更多! 扫码更精彩 ⏬
近期好文:
“高效运维”公众号诚邀广大技术人员投稿
投稿邮箱:[email protected],或添加联系人微信:greatops1118. 点个“在看”,一年不宕
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...