升级到 Clusterpedia 0.1.0

随着 Clusterpedia 0.1.0 版本的发布,我们可以将早期的 0.0.9-alpha 或者 0.0.8 更新到 0.1.0 了。

旧版本资源清理

由于资源检索的路径发生了修改(#73),所以需要使用 0.0.9-alpha 的 clean-clusterconfigs.sh 来清理 .kube/config 中的 Clusterpedia 集群访问配置

curl -sfL https://raw.githubusercontent.com/clusterpedia-io/clusterpedia/v0.0.9-alpha/hack/clean-clusterconfigs.sh | sh -

备份并删除 PediaCluster 资源

kubectl get pediacluster -o yaml > clusters.yaml.bak

kubectl delete pediacluster --all

所有的 PediaCluster 资源都删除后,删除 PediaCluster CRD

kubectl delete crd pediaclusters.clusters.clusterpedia.io

删除用于注册聚合式 API 的 APIServices

kubectl delete apiservices v1alpha1.pedia.clusterpedia.io

更新 Clusterpedia

新建 PediaCluster CRD, 并且更新 Clusterpedia APIServerClustersynchro Manager

DEPLOY_YAML_PATH=https://raw.githubusercontent.com/clusterpedia-io/clusterpedia/v0.1.0/deploy
CRD_YAML_PATH=$DEPLOY_YAML_PATH/crds

kubectl apply -f \
    $CRD_YAML_PATH/cluster.clusterpedia.io_pediaclusters.yaml,\
    $DEPLOY_YAML_PATH/clusterpedia_clustersynchro_manager_deployment.yaml,\
    $DEPLOY_YAML_PATH/clusterpedia_apiserver_deployment.yaml,\
    $DEPLOY_YAML_PATH/clusterpedia_apiserver_apiservice.yaml

可以将 YAML 下载到本地,或者拉取项目到本地,进入 ./deploy 目录下执行 kubectl apply。

重新接入集群

由于 PediaCluster 的 APIVersion 和结构都进行了一些不兼容的优化,所以需要重新根据备份的 clusters.yaml.bak 来重新创建 PediaCluster

当前 PediaCluster 的示例为:

apiVersion: cluster.clusterpedia.io/v1alpha2
kind: PediaCluster
metadata:
  name: cluster-example
spec:
  apiserver: "https://10.30.43.43:6443"
  caData:
  tokenData:
  certData:
  keyData:
  syncResources:
  - group: apps
    resources:
     - deployments
  - group: ""
    resources:
     - pods

相比 0.0.9-alpha 主要有三个修改:

  • apiVersionclusters.clusterpedia.io/v1alpha1 -> cluster.clusterpedia.io/v1alpha2
  • spec.apiserverURL -> spec.apiserver
  • spec.resources -> spec.syncResources

具体的修改可以查看: #70 #67 #76 #77

根据 clusters.yaml.bak 内旧的 PediaCluster 来创建新的 PediaCluster

apiVersion: cluster.clusterpedia.io/v1alpha2
kind: PediaCluster
metadata:
  name: cluster-1
spec: {}
---
apiVersion: cluster.clusterpedia.io/v1alpha2
kind: PediaCluster
metadata:
  name: cluster-2
spec: {}

查看集群接入状态

kubectl get pediacluster

为多集群检索生成快捷访问配置

curl -sfL https://raw.githubusercontent.com/clusterpedia-io/clusterpedia/v0.1.0/hack/gen-clusterconfigs.sh | sh -