调试 Block Storage for VPC 度量
尝试在监视仪表板中查看 Block Storage for VPC 度量值时,不会填充度量值。
由于下列其中一个原因,度量可能无法在仪表板中填充:
- 可能未安装要监视的 PVC。 仅针对安装到 pod 的 PVC 填充度量。
- 可能存在与控制台相关的问题,可以通过在 CLI 中手动查看存储度量来验证该问题。
检查PVC是否安装到位。 如果问题仍然存在,请在 CLI 中手动查看度量值,以确定原因是否与控制台问题相关。
-
描述 PVC。 如果输出的 使用者 行中填充了 pod 的名称,那么将安装 PVC。
oc describe pvc <pvc_name>
示例输出
Name: my-pvc Namespace: default StorageClass: ibmc-vpc-block-5iops-tier Status: Bound Volume: pvc-a11a11a1-111a-111a-a1a1-aaa111aa1a1a Labels: <none> Annotations: pv.kubernetes.io/bind-completed: yes pv.kubernetes.io/bound-by-controller: yes volume.beta.kubernetes.io/storage-provisioner: vpc.block.csi.ibm.io Finalizers: [kubernetes.io/pvc-protection] Capacity: 10Gi Access Modes: RWO VolumeMode: Filesystem Used By: my-pod-11a1a1a1a1-1a11a Events: <none>
-
如果 PVC 未安装到 pod,请查看 设置 Block Storage for VPC 并将 PVC 安装到 pod 的步骤。 然后再次尝试查看度量值。
-
如果安装了 PVC,请遵循 手动验证 Block Storage for VPC 度量 的步骤,然后 打开支持问题。 CLI 中用于手动验证的步骤允许您查看度量值,但对于未在控制台中填充的度量值,这些步骤不是解决方案。 但是,如果您能够手动验证度量值,那么这表示存在必须针对其提交问题的控制台问题。
在 CLI 中手动查看存储度量
如果存储度量值在监视仪表板中不可见,那么您可以在 CLI 中手动查看这些度量值。 请注意,手动验证存储度量是一种临时变通方法,而不是用于查看度量的永久监视解决方案。 完成以下步骤后,如果您能够在 CLI 中而不是仪表板中手动查看度量值,那么这指示存在控制台问题,您必须 打开支持问题。
完成以下步骤后,请确保除去调试时创建的资源。
-
创建并部署定制
clusterRole
配置。 在此示例中,clusterRole
名为test-metrics-reader
。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: test-metrics-reader rules: - nonResourceURLs: - "/metrics" verbs: - get - apiGroups: - "" resources: - nodes/metrics verbs: - get
oc apply -f <file_name>
-
创建服务帐户。 在此示例中,服务帐户名为
test-sa
。oc create sa test-sa
-
将
clusterRoleBinding
添加到clusterRole
。oc create clusterrolebinding test-metrics-reader --clusterrole test-metrics-reader --serviceaccount=default:test-sa
-
列出节点并记下要为其收集度量值的节点的名称和 IP。
oc get nodes
示例输出
NAME STATUS ROLES AGE VERSION 10.111.1.11 Ready <none> 1d v1.32+IKS
-
创建一个 yaml 文件以将 pod 部署到节点上。 确保指定您创建的服务帐户和节点 IP 地址。
apiVersion: v1 kind: Pod metadata: name: testpod spec: nodeName: 10.111.1.111 containers: - image: nginx name: nginx serviceAccountName: test-sa
oc apply -f <file_name>
-
从Pod中检索服务账户令牌。
-
登录播客。
kubectl exec testpod -it -- bash
-
运行以下命令获取令牌。 请注意,没有输出。
token=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
-
-
当您仍登录到 pod 时,请运行命令以查看存储度量值。 确保指定节点 IP 地址。
curl -k -H "authorization: bearer <token> https://<node_IP>:10250/metrics | grep kubelet_volume_stats
-
查看终端输出中的度量。 您可能需要等待几分钟,才能输出指标。 如果仍无法查看度量值,请 提交支持问题。
-
在完成查看度量并确定问题是与仪表板还是度量代理程序相关之后,请删除您在先前步骤中创建的配置和资源。
请勿跳过此步骤。
- 退出 pod。
exit
- 删除 pod。
oc delete pod testpod
- 删除
clusterRoleBinding
。oc delete clusterrolebinding test-metrics-reader
- 删除服务帐户。
oc delete sa test-sa
- 删除集群角色。
oc delete clusterrole test-metrics-reader