karmada-io / karmada

Open, Multi-Cloud, Multi-Cluster Kubernetes Orchestration
https://karmada.io
Apache License 2.0
4.35k stars 861 forks source link

May I ask how to install Karmada scheduler estimator? #5187

Open Schwarao opened 1 month ago

Schwarao commented 1 month ago

May I ask how to install Karmada scheduler estimator? (I know we need to use the./deploy scheduler estimator. sh script to deploy) Here is my Karmada cluster:

root@iZ7xv0rsn26hoaeu2z3aabZ:~/.kube# kubectl --kubeconfig /etc/karmada/karmada-apiserver.config get cluster NAME VERSION MODE READY AGE ali v1.29.6 Push True 47h kubernetes v1.28.11 Pull True 47h teng v1.28.11 Pull True 47h image

chaosi-zju commented 1 month ago

Hi @Schwarao, have you try following way:

Usage: hack/deploy-scheduler-estimator.sh <HOST_CLUSTER_KUBECONFIG> <HOST_CLUSTER_NAME> <MEMBER_CLUSTER_KUBECONFIG> <MEMBER_CLUSTER_NAME>

Example: hack/deploy-scheduler-estimator.sh ~/.kube/karmada.config karmada-host ~/.kube/members.config ali

This is the common installation way to deploy estimator, tell me if here is any problem~

Schwarao commented 1 month ago

I don't know how to read~/. kube/kamdada. config karma host

嗨,请您尝试以下方式:

用法:hack/deploy-scheduler-estimator.sh <HOST_CLUSTER_KUBECONFIG> <HOST_CLUSTER_NAME> <MEMBER_CLUSTER_KUBECONFIG> <MEMBER_CLUSTER_NAME>

例:hack/deploy-scheduler-estimator.sh ~/.kube/karmada.config karmada-host ~/.kube/members.config ali

这是部署估算器的常用安装方式,这里有没有问题告诉我~

Schwarao commented 1 month ago

@chaosi-zju Please tell me if this is already installed? But it's not in the get pod image

chaosi-zju commented 1 month ago

Please tell me if this is already installed? But it's not in the get pod

No, the kubeconfig you provided is wrong, you provided is the kubeconfig of karmada-apiserver, which is not expected.

I don't know how to read ~/. kube/kamdada. config karma-host

The position of ~/. kube/kamdada. config should be replaced with the KUBECONFIG of your HOST_CLUSTER (the control plane cluster where you installed Karmada), while the position of karma-host should be HOST_CLUSTER_NAME.

when successful installed, you can execute kubectl get pods -n karmada-system to check, just like:

$ kubectl get pods -n karmada-system
NAME                                                   READY   STATUS    RESTARTS   AGE
etcd-0                                                 1/1     Running   0          28h
karmada-aggregated-apiserver-5fddf66847-64lxl          1/1     Running   0          28h
karmada-apiserver-645666749-v998l                      1/1     Running   0          28h
karmada-controller-manager-bbdf689db-g9xk4             1/1     Running   0          28h
karmada-scheduler-78f854fbd4-8bm8m                     1/1     Running   0          28h
karmada-scheduler-estimator-member1-76b998b5cd-cp264   1/1     Running   0          28h
karmada-webhook-77b9945cf9-mfbtg                       1/1     Running   0          28h
kube-controller-manager-784b5df6d-mvlkt                1/1     Running   0          28h

you can see here is a line just like: karmada-scheduler-estimator-member1-76b998b5cd-cp264 1/1 Running 0 28h

Schwarao commented 1 month ago

But there is no Karamada. config file under my~/. kube/folder. And I always control Karmada through this method: VNet -- kubeconfig/etc/Karmada/Karmada apiserver. config get pod

请告诉我是否已经安装了?但它不在 get pod 中

不,您提供的 kubeconfig 是错误的,您提供的是 karmada-apiserver 的 kubeconfig,这是意料之外的。

我不知道怎么读~/。kube/kamdada。配置 karma-host

的位置应该替换为HOST_CLUSTER的 KUBECONFIG(安装 Karmada 的控制平面集群),而 的位置应该是HOST_CLUSTER_NAME。~/. kube/kamdada. config``karma-host

安装成功后,可以执行检查,就像:kubectl get pods -n karmada-system

$ kubectl get pods -n karmada-system
NAME                                                   READY   STATUS    RESTARTS   AGE
etcd-0                                                 1/1     Running   0          28h
karmada-aggregated-apiserver-5fddf66847-64lxl          1/1     Running   0          28h
karmada-apiserver-645666749-v998l                      1/1     Running   0          28h
karmada-controller-manager-bbdf689db-g9xk4             1/1     Running   0          28h
karmada-scheduler-78f854fbd4-8bm8m                     1/1     Running   0          28h
karmada-scheduler-estimator-member1-76b998b5cd-cp264   1/1     Running   0          28h
karmada-webhook-77b9945cf9-mfbtg                       1/1     Running   0          28h
kube-controller-manager-784b5df6d-mvlkt                1/1     Running   0          28h

你可以看到这里有一行,就像:karmada-scheduler-estimator-member1-76b998b5cd-cp264 1/1 Running 0 28h

Schwarao commented 1 month ago

@chaosi-zju image I installed Karmada on the cluster where Ali is located, and then the other two clusters joined Karmada using a pull method, so there is no corresponding config file for them on the host of Ali cluster. What should I do. At the same time, I couldn't find the Karamada.config file, only the config file for the Ali cluster

chaosi-zju commented 1 month ago

I installed Karmada on the cluster where Ali is located, and then the other two clusters joined Karmada using a pull method

So, Ali cluster is your host cluster of karmada, that ~/.kube/config is your host cluster kubeconfig

Could you please execute following command and provide the output to me to check whether my guess correct:

$ kubectl --kubeconfig ~/.kube/config --context aliyun get pods -n karmada-system
Schwarao commented 1 month ago

image

I installed Karmada on the cluster where Ali is located, and then the other two clusters joined Karmada using a pull method

So, cluster is your host cluster of karmada, that is your host cluster kubeconfigAli``~/.kube/config

Could you please execute following command and provide the output to me to check whether my guess correct:

$ kubectl --kubeconfig ~/.kube/config --context aliyun get pods -n karmada-system
chaosi-zju commented 1 month ago

Yes, my guess is right, try following command to install scheduler-estimator

After all that success, please re-run kubectl --kubeconfig ~/.kube/config --context aliyun get pods -n karmada-system~

Schwarao commented 1 month ago

Yes, my guess is right, try following command to install scheduler-estimator

  • install estimator for aliyun member cluster
hack/deploy-scheduler-estimator.sh ~/.kube/config aliyun ~/.kube/config aliyun
  • install estimator for kubernetes member cluster(supposing kubernetes member cluster kubeconfig is ~/.kube/config and name is kubernetes
hack/deploy-scheduler-estimator.sh ~/.kube/config aliyun ~/.kube/config kubernetes
  • install estimator for teng member cluster(supposing teng member cluster kubeconfig is ~/.kube/config and name is teng
hack/deploy-scheduler-estimator.sh ~/.kube/config aliyun ~/.kube/config teng

After all that success, please re-run kubectl --kubeconfig ~/.kube/config --context aliyun get pods -n karmada-system~

But there is no Kubernetes cluster in the~/. kube/config file because I used pull mode and it seems that I don't need to put the Kubernetes cluster's config into the Aliyun cluster. How can I solve this. Because the Kubernetes cluster does not have a fixed network public IP address, it is difficult to access the Kubernetes cluster through Aliyun.

chaosi-zju commented 1 month ago

Because the Kubernetes cluster does not have a fixed network public IP address, it is difficult to access the Kubernetes cluster through Aliyun.

Sorry to hear that, if you need a schedule-estimator work for a pull mode cluster, it is required that the network of karmada-control-plane (in your case is Aliyun cluster) can access to the pull mode cluster.

By the way, how about install karmada in Kubernetes cluster? Is Kubernetes cluster your local cluster and unstable?

Schwarao commented 1 month ago

Because the Kubernetes cluster does not have a fixed network public IP address, it is difficult to access the Kubernetes cluster through Aliyun.

Sorry to hear that, if you need a schedule-estimator work for a pull mode cluster, it is required that the network of karmada-control-plane (in your case is Aliyun cluster) can access to the pull mode cluster.

By the way, how about install karmada in Kubernetes cluster? Is Kubernetes cluster your local cluster and unstable?

Do you mean I have to use push mode to join Karmada? What does' install karma in cluster 'mean? Kubernetes is my local cluster, but its IP is unstable.

chaosi-zju commented 1 month ago

What does' install karma in cluster 'mean?

image Karmada is composed of these components in this picture. The cluster with these components is called the control plane cluster or host cluster. Installing karmada means installing these components in one cluster. (By the way, how did you installed karmada in Aliyun cluster? Maybe is operated by someone else?)

Do you mean I have to use push mode to join Karmada?

Basing on above description about host cluster, no matter is push mode or pull mode, the key factor is that the network from host cluster to member cluster needs to be accessible if you want to use scheduler-estimator.

Schwarao commented 1 month ago

This is the command I installed: sudo kubectl karmada init \ --etcd-init-image=alpine:3.19.2 \ --karmada-apiserver-advertise-address xxx.xxx.xxx.xxx \ --karmada-aggregated-apiserver-image=karmada/karmada-aggregated-apiserver:v1.10.1 \ --karmada-controller-manager-image=karmada/karmada-controller-manager:v1.10.1 \ --karmada-scheduler-image=karmada/karmada-scheduler:v1.10.1 \ --karmada-webhook-image=karmada/karmada-webhook:v1.10.1 \ --karmada-apiserver-image=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.28.11 \ --kube-image-registry=registry.cn-hangzhou.aliyuncs.com/google_containers \ --crds=crds.tar.gz Then, in the Kubernetes cluster and TENG cluster, it is possible to access the API server of the Ali cluster, but the Ali cluster cannot access the API server of the Kubernetes cluster

Schwarao commented 1 month ago

--karmada-apiserver-advertise-address xxx.xxx.xxx.xxx I used the command -- karma apiserver advertising address xxx.xxx.xxx.xxx to generate an externally accessible token for Karmada, so that even if I don't have a fixed public IP address, I can still connect to Karmada

' install karma in cluster '是什么意思?

图像在这张照片中,业力是由这些成分组成的。具有这些组件的集群称为 或 。安装 karmada 意味着将这些组件安装在一个集群中。(顺便问一下,你是如何在集群中安装karmada的?也许是别人操作的?control plane cluster``host cluster``Aliyun

你的意思是我必须使用推送模式才能加入噶玛达?

基于上面关于的描述,不管是模式还是模式,关键因素是网络从到需要是可访问的,如果想使用。host cluster``push``pull``host cluster``member cluster``scheduler-estimator