通过 Karmada 分发 Deployment

本指南涵盖了:

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

前提条件

安装 Karmada 控制面

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

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

2. 更改到 karmada 目录

  1. cd karmada

3. 部署并运行 Karmada 控制面

运行以下脚本:

  1. hack/local-up-karmada.sh

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

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

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

  1. Local Karmada is running.
  2. To start using your Karmada environment, run:
  3. export KUBECONFIG="$HOME/.kube/karmada.config"
  4. Please use 'kubectl config use-context karmada-host/karmada-apiserver' to switch the host and control plane cluster.
  5. To manage your member clusters, run:
  6. export KUBECONFIG="$HOME/.kube/members.config"
  7. 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

分发应用程序

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

1. 在 Karmada 中创建 nginx deployment

首先创建名为 nginxdeployment

  1. kubectl create -f samples/nginx/deployment.yaml

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

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

  1. kubectl create -f samples/nginx/propagationpolicy.yaml

3. 从 Karmada 查看 Deployment 状态

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

  1. $ kubectl get deployment
  2. NAME READY UP-TO-DATE AVAILABLE AGE
  3. nginx 2/2 2 2 20s