华为云UCS-集群评估:步骤一:源集群数据采集

时间:2025-02-12 15:05:17

步骤一:源集群数据采集

  1. 通过kubectl连接源集群。具体方法可参考使用kubectl连接集群
  2. 使用默认参数配置,采集集群中所有命名空间的数据。执行方法:./kspider-linux-amd64

    执行后的输出详细信息如下:
    [~]# ./kspider-linux-amd64The Cluster version is v1.15.6-r1-CCE2.0.30.B001There are 5 NamespacesThere are 2 NodesName CPU Memory IP Arch OS Kernel MachineID10.1.18.64 4 8008284Ki [10.1.18.64 10.1.18.64] amd64 linux 3.10.0-1127.19.1.el7.x86_64 ef9270ed-7eb3-4ce6-a2d8-f1450f85489a10.1.19.13 4 8008284Ki [10.1.19.13 10.1.19.13] amd64 linux 3.10.0-1127.19.1.el7.x86_64 2d889590-9a32-47e5-b947-09c5bda81849There are 9 PodsThere are 0 LonePods: There are 2 StatefulSets: Name Namespace NodeAffinityminio default falseminio minio falseThere are 3 Deployments: Name Namespace NodeAffinityrctest default trueflink-operator-controller-manager flink-operator-system falserctest minio falseThere are 1 DaemonSets: Name Namespace NodeAffinityds-nginx minio falseThere are 0 Jobs: There are 0 CronJobs: There are 4 PersistentVolumeClaims: Namespace/Name Podsdefault/pvc-data-minio-0 default/minio-0minio/obs-testing minio/ds-nginx-9hmds,minio/ds-nginx-4jsfgminio/pvc-data-minio-0 minio/minio-0There are 5 PersistentVolumes: Name Namespace pvcName scName size keypvc-bd36c70f-75bf-4000-b85c-f9fb169a14a8 minio-pv obs-testing csi-obs 1Gi pvc-bd36c70f-75bf-4000-b85c-f9fb169a14a8pvc-c7c768aa-373a-4c52-abea-e8b486d23b47 minio-pv pvc-data-minio-0 csi-disk-sata 10Gi 1bcf3d00-a524-45b1-a773-7efbca58f36apvc-4f52462b-3b4c-4191-a63b-5a36a8748c05 minio obs-testing csi-obs 1Gi pvc-4f52462b-3b4c-4191-a63b-5a36a8748c05pvc-9fd92c99-805a-4e65-9f22-e238130983c8 default pvc-data-minio-0 csi-disk 10Gi 590afd05-fc68-4c10-a598-877100ca7b3fpvc-a22fd877-f98d-4c3d-a04e-191d79883f97 minio pvc-data-minio-0 csi-disk-sata 10Gi 48874130-df77-451b-9b43-d435ac5a11d5There are 7 Services: Name Namespace ServiceTypeheadless-lxprus default ClusterIPkubernetes default ClusterIPminio default NodePortflink-operator-controller-manager-metrics-service flink-operator-system ClusterIPflink-operator-webhook-service flink-operator-system ClusterIPheadless-lxprus minio ClusterIPminio minio NodePortThere are 0 Ingresses: There are 6 Images: Namegcr.io/flink-operator/flink-operator:v1beta1-6flink:1.8.2swr.cn-north-4.myhuaweicloud.com/paas/minio:latestnginx:stable-alpine-perlswr.cn-north-4.myhuaweicloud.com/everest/minio:latestgcr.io/kubebuilder/kube-rbac-proxy:v0.4.0There are 2 Extra Secrets: SecretTypecfe/secure-opaquehelm.sh/release.v1

    在kspider执行完毕后,当前目录下将生成两个文件:

    • cluster-*.json:此文件包含了源集群及应用的采集数据,这些数据可用于分析和规划迁移过程。
    • preferred-*.json:此文件包含了推荐的目标集群信息。基于源集群的规模和节点规格进行初步评估,文件将提供关于目标集群版本和规模的建议。

  3. 查看源集群及应用的采集数据。

    您可以用文本编辑器或JSON查看器打开“cluster-*.json”文件以查看数据。在实际操作中,您需要将文件名中的“*”替换为实际的时间戳或序列号,以找到并打开正确的文件。

    “cluster-*.json”文件说明如下:

    {  K8sVersion:Kubernetes版本,字符串类型  Namespaces:命名空间数量,字符串类型  Pods:Pod总数量,整型  Nodes:节点总信息,以IP为key,展示节点信息    IP地址      CPU:CPU,字符串类型      Arch:CPU架构,字符串类型      Memory:内存,字符串类型      HugePages1Gi:1G大页内存,字符串类型      HugePages2Mi:2M大页内存,字符串类型      OS:节点OS,字符串类型      KernelVersion:OS内核版本,字符串类型      RuntimeVersion:节点容器运行及版本,字符串类型      InternalIP:内部IP,字符串类型      ExternalIP:外部IP,字符串类型      MachineID:节点ID,字符串类型。说明:CCE中能够保证与E CS 的ID一致  Workloads:工作负载    Deployment:工作负载类型,支持Deployment(无状态负载)、StatefulSet(有状态负载)、DaemonSet(守护进程集)、CronJob(定时任务)、Job(普通任务)、LonePod(独立Pod)      default:命名空间名称        Count:数量,整型        Items:详细信息,数组类型          Name:工作负载名称,字符串类型          Namespace:命名空间名称,字符串类型          NodeAffinity:节点亲和性,布尔型          Replicas:副本数量,整型  Storage:存储    PersistentVolumes:持久卷      pv-name:以PV名称为key        VolumeID:卷ID,字符串类型        Namespace:命名空间,字符串类型        PvcName:绑定PVC的名称,字符串类型        ScName:存储类的名称,字符串类型        Size:申请空间大小,字符串类型        Pods:使用PV的Pod名称,字符串类型        NodeIP:Pod所在的节点IP,字符串类型        VolumePath:该Pod挂载节点的路径,字符串类型    OtherVolumes:其它类型卷      类型:AzureFile、AzureDisk、GCEPersistentDisk、AWSElasticBlockStore、Cinder、Glusterfs、NFS、CephFS、FlexVolume、FlexVolume、DownwardAPI        卷ID/卷名称/卷共享路径等为key          Pods:使用其的Pod,字符串类型          NodeIP:Pod所在的节点IP,字符串类型          卷ID/卷名称/卷共享路径等唯一标识卷信息的信息,字符串类型  Networks:网络    LoadBalancer:负载均衡类型      service:网络类型,包括service和ingress        Name:名称,字符串类型        Namespace:命名空间名称,字符串类型        Type:类型,字符串类型  ExtraSecrets:扩展secret类型    secret类型名,字符串类型  Images:镜像    镜像repo,字符串类型}

    示例:

    {  "K8sVersion": "v1.19.10-r0-CCE22.3.1.B009",  "Namespaces": 12,  "Pods": 33,  "Nodes": {    "10.1.17.219": {      "CPU": "4",      "Memory": "7622944Ki",      "HugePages1Gi": "0",      "HugePages2Mi": "0",      "Arch": "amd64",      "OS": "EulerOS 2.0 (SP9x86_64)",      "KernelVersion": "4.18.0-147.5.1.6.h687.eulerosv2r9.x86_64",      "RuntimeVersion": "docker://18.9.0",      "InternalIP": "10.1.17.219",      "ExternalIP": "",      "MachineID": "0c745e03-2802-44c2-8977-0a9fd081a5ba"    },    "10.1.18.182": {      "CPU": "4",      "Memory": "7992628Ki",      "HugePages1Gi": "0",      "HugePages2Mi": "0",      "Arch": "amd64",      "OS": "EulerOS 2.0 (SP5)",      "KernelVersion": "3.10.0-862.14.1.5.h520.eulerosv2r7.x86_64",      "RuntimeVersion": "docker://18.9.0",      "InternalIP": "10.1.18.182",      "ExternalIP": "100.85.xxx.xxx",      "MachineID": "2bff3d15-b565-496a-817c-063a37eaf1bf"    }  },  "Workloads": {    "CronJob": {},    "DaemonSet": {      "default": {        "Count": 1,        "Items": [          {            "Name": "kubecost-prometheus-node-exporter",            "Namespace": "default",            "NodeAffinity": false,            "Replicas": 3          }        ]      }    },    "Deployment": {      "default": {        "Count": 1,        "Items": [          {            "Name": "kubecost-cost-analyzer",            "Namespace": "default",            "NodeAffinity": false,            "Replicas": 1          }        ]      },      "kubecost": {        "Count": 1,        "Items": [          {            "Name": "kubecost-kube-state-metrics",            "Namespace": "kubecost",            "NodeAffinity": false,            "Replicas": 1          }        ]      }    },    "Job": {},    "LonePod": {},    "StatefulSet": {      "minio-all": {        "Count": 1,        "Items": [          {            "Name": "minio",            "Namespace": "minio-all",            "NodeAffinity": false,            "Replicas": 1          }        ]      }    }  },  "Storage": {    "PersistentVolumes": {      "demo": {        "VolumeID": "demo",        "Namespace": "fluid-demo-test",        "PvcName": "demo",        "ScName": "fluid",        "Size": "100Gi",        "Pods": "",        "NodeIP": "",        "VolumePath": ""      },      "pvc-fd3a5bb3-119a-44fb-b02e-96b2cf9bb36c": {        "VolumeID": "82365752-89b6-4609-9df0-007d964b7fe4",        "Namespace": "minio-all",        "PvcName": "pvc-data-minio-0",        "ScName": "csi-disk",        "Size": "10Gi",        "Pods": "minio-all/minio-0",        "NodeIP": "10.1.23.159",        "VolumePath": "/var/lib/kubelet/pods/5fc47c82-7cbd-4643-98cd-cea41de28ff2/volumes/kubernetes.io~csi/pvc-fd3a5bb3-119a-44fb-b02e-96b2cf9bb36c/mount"      }    },    "OtherVolumes": {}  },  "Networks": {    "LoadBalancer": {}  },  "ExtraSecrets": [    "cfe/secure-opaque",    "helm.sh/release.v1"  ],  "Images": [    "nginx:stable-alpine-perl",    "ghcr.io/koordinator-sh/koord-manager:0.6.2",    "swr.cn-north-4.myhuaweicloud.com/paas/minio:latest",    "swr.cn-north-4.myhuaweicloud.com/everest/e-backup-test:v1.0.0",    "gcr.io/kubecost1/cost-model:prod-1.91.0",    "gcr.io/kubecost1/frontend:prod-1.91.0"  ]}

support.huaweicloud.com/usermanual-ucs/ucs_01_0188.html