使用 Karmada-search 来体验多集群检索
本指南将涵盖以下内容:
- 在 Karmada 控制面上安装
karmada-search组件 - 缓存多个集群的
Deployment资源。 - 使用
OpenSearch图形界面检索 Kubernetes 资源。
前提条件
在安装 karmada-search 之前,您必须先安装 Karmada 控制平面。要启动 Karmada,您可以参考安装概述。如果您只是想尝试 Karmada,我们建议使用 hack/local-up-karmada.sh 构建开发环境。
git clone https://github.com/karmada-io/karmada
cd karmada
hack/local-up-karmada.sh
安装 karmada-search
如果您使用 hack/local-up-karmada.sh,那 karmada-search 已经安装好了。
如果您通过 Helm 安装 Karmada,可以选择以下任意一种方式进行安装:
- 在
host模式下安装karmada-search
helm upgrade --install karmada -n karmada-system --create-namespace --dependency-update \
--cleanup-on-fail ./charts/karmada \
--set components={"search"}
- 在
component模式下单独安装karmada-search
为 karmada-search 编辑 values.yaml 文件:
installMode: "component"
components: [
"search"
]
...
执行下述命令:
kubectl config use-context host
helm install karmada -n karmada-system ./charts/karmada
如果您通过 Karmada Operator 安装 Karmada,可以在安装 Karmada 组件时,执行下述命令:
kubectl create namespace test
kubectl apply -f - <<EOF
apiVersion: operator.karmada.io/v1alpha1
kind: Karmada
metadata:
name: karmada-demo
namespace: test
spec:
components:
karmadaSearch: {}
EOF
此外,karmadactl 支持一键安装 karmada-search。
karmadactl addons enable karmada-search
有关更多详细信息,您可以参考 karmadactl addons instruction。
缓存多个集群的 Deployment 资源
在接下来的步骤中,我们将在缓存成员集群的 Deployment 资源。根据示例,我们已经将一个 nginx Deployment 分发到了 member1 和 member2。
1. 创建一个 ResourceRegistry,它将缓存目标集群中的 Deployment 资源。
### deployment-search.yaml
apiVersion: search.karmada.io/v1alpha1
kind: ResourceRegistry
metadata:
name: deployment-search
spec:
targetCluster:
clusterNames:
- member1
- member2
resourceSelectors:
- apiVersion: apps/v1
kind: Deployment
kubectl --kubeconfig $HOME/.kube/karmada.config --context karmada-apiserver create -f deployment-search.yaml