【Karmada使用教程】快速开始,通过 Karmada 分发 Deployment

举报
云容器大未来 发表于 2025/12/16 10:26:29 2025/12/16
【摘要】 Karmada 是开放的多云多集群容器编排引擎,旨在帮助用户在多云环境下部署和运维业务应用。凭借兼容 Kubernetes 原生 API 的能力,Karmada 可以平滑迁移单集群工作负载,并且仍可保持与 Kubernetes 周边生态工具链协同。本系列文章将介绍 Karmada 的使用教程,本文介绍如何通过 Karmada 分发 Deployment。

Karmada 是开放的多云多集群容器编排引擎,旨在帮助用户在多云环境下部署和运维业务应用。凭借兼容 Kubernetes 原生 API 的能力,Karmada 可以平滑迁移单集群工作负载,并且仍可保持与 Kubernetes 周边生态工具链协同。本系列文章将介绍 Karmada 的使用教程,本文介绍如何通过 Karmada 分发 Deployment

karmada-1.png本指南涵盖了:

  • 在名为 host cluster 的 Kubernetes 集群中安装 karmada 控制面组件。
  • 将一个成员集群接入到 karmada 控制面。
  • 通过使用 karmada 分发应用程序。

前提条件

Go v1.18+

kubectl v1.19+

kind v0.14.0+

安装 Karmada 控制面

1️⃣ 克隆此代码仓库到你的机器

git clone https://github.com/karmada-io/karmada

2️⃣ 更改到 karmada 目录

cd karmada

3️⃣ 部署并运行 Karmada 控制面

运行以下脚本:

hack/local-up-karmada.sh

📝 该脚本将为你执行以下任务:

  • 启动一个 Kubernetes 集群来运行 Karmada 控制面,即 host cluster
  • 根据当前代码库构建 Karmada 控制面组件。
  • 在 host cluster 上部署 Karmada 控制面组件。
  • 创建成员集群并接入 Karmada。

💬 如果一切良好,在脚本输出结束时你将看到以下类似消息:

Local Karmada is running.


To start using your Karmada environment, run:
 export KUBECONFIG="$HOME/.kube/karmada.config"
Please use 'kubectl config use-context karmada-host/karmada-apiserver' to switch the host and control plane cluster.


To manage your member clusters, run:
 export KUBECONFIG="$HOME/.kube/members.config"
Please use 'kubectl config use-context member1/member2/member3' to switch to the different member cluster.

Karmada 中有两个上下文环境:

  • karmada-apiserver kubectl config use-context karmada-apiserver
  • karmada-host kubectl config use-context karmada-host

karmada-apiserver 是与 Karmada 控制面交互时要使用的 主要 kubeconfig, 而 karmada-host 仅用于调试 Karmada 对 host cluster 的安装。 你可以通过运行 kubectl config view 随时查看所有集群。 要切换集群上下文,请运行 kubectl config use-context [CONTEXT_NAME]

Demo

DEMO.gif


分发应用程序

在以下步骤中,我们将通过 Karmada 分发一个 Deployment

1️⃣ 在 Karmada 中创建 nginx deployment

首先创建名为 nginx 的 deployment

kubectl create -f samples/nginx/deployment.yaml

2️⃣ 创建将 nginx 分发到成员集群的 PropagationPolicy

随后我们需要创建一个策略将 Deployment 分发到成员集群。

kubectl create -f samples/nginx/propagationpolicy.yaml

3️⃣ 从 Karmada 查看 Deployment 状态

你可以从 Karmada 查看 Deployment 状态,无需访问成员集群:

$ kubectl get deployment

NAME    READY   UP-TO-DATE   AVAILABLE   AGE

nginx   2/2     2            2           20s

更多Karmada云原生多云容器引擎使用教程与技术交流,欢迎关注Karmada社区公众号或添加社区小助手k8s2222,回复Karmada进群。

karmada公众号.jpg

Karmada 公众号




Karmada 是CNCF 首个多云多集群容器编排项目(孵化级),旨在帮助用户像使用单个集群一样轻松管理跨云多集群,让基于 Karmada 的多云方案无缝融入云原生技术生态。社区吸引了来自华为、道客、浙江大学、滴滴、腾讯、中国电子云等60多家公司的全球贡献者,广泛分布于22个国家和地区。Karmada 现已在华为云、道客、兴业数金、中国移动、中国联通、携程、360集团、新浪、中通快递等众多企业单位生产应用,为企业提供从单集群到多云架构的平滑演进方案。

Karmada官网:https://karmada.io/

项目地址:https://github.com/karmada-io/karmada

Slack地址:https://slack.cncf.io/(#karmada)

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。