/dev/sev-guest) and the PCC communication Socket (/var/run/pcc) on the node to business containers. The component is implemented based on the Kubernetes Device Plugin framework and deployed as a DaemonSet on native nodes with confidential computing enabled. It allows Pods to obtain access to confidential computing devices through standard resource requests, enabling automated scheduling and resource isolation for confidential computing workloads.Kubernetes Object Name | Type | Requesting Resources | Associated Namespace |
pcc-device-plugin | DaemonSet | CPU: 100m,Memory: 200Mi | kube-system |
tke.cloud.tencent.com/pcc-device-plugin: "true" tag, which is automatically injected when confidential computing is enabled for the node pool./dev/sev-guest device and the /var/run/pcc directory. If either is missing, the component cannot start.--resource-count parameter./dev/sev-guest device mount. Device exclusivity or sharding is not supported.tke.cloud.tencent.com/pcc-device-plugin: "true" tag.tke.cloud.tencent.com/pcc-device: 1 in resources.limits:apiVersion: v1kind: Podmetadata:name: confidential-appspec:nodeSelector:tke.cloud.tencent.com/pcc-device-plugin: "true"containers:- name: appimage: my-confidential-app:latestresources:limits:tke.cloud.tencent.com/pcc-device: 1
/dev/sev-guest: AMD SEV-SNP device node (read/write permission)./var/run/pcc: PCC communication Socket directory (read/write permission)./dev/sev-guest and /var/run/pcc exist on the node, and exits if either is missing.tke.cloud.tencent.com/pcc-device with kubelet and reports the virtual device list (16 by default).Parameter | Default Value | Description |
--pcc-device | /dev/sev-guest | PCC device node path. |
--pcc-socket-path | /var/run/pcc | PCC communication Socket path, mounted into the container as a hostPath. |
--resource-name | tke.cloud.tencent.com/pcc-device | Name of the extended resource registered with kubelet. |
--resource-count | 16 | Number of virtual devices declared on the node, which is the maximum number of concurrent confidential computing containers per node. |
--v | 0 | Log verbosity level. DaemonSet passes 1 by default. |
Symptom | Possible cause | Troubleshooting method |
Pod remains Pending, with the message "Insufficient tke.cloud.tencent.com/pcc-device". | Plugin not running or not registered successfully. | Run kubectl -n kube-system get ds pcc-device-plugin to check the DaemonSet status, and view the plugin logs to confirm whether "Registered device plugin with Kubelet" is output. |
The plugin is in CrashLoopBackOff, and the logs report "detect device /dev/sev-guest failed". | Node is not an SEV-SNP instance. | Run ls /dev/sev-guest on the node to confirm that the device exists. This plugin should not be scheduled on non-confidential computing instance types. |
The plugin is in CrashLoopBackOff, and the logs report "detect socket path /var/run/pcc failed". | The /var/run/pcc directory is not created on the node. | Run ls /var/run/pcc on the node to confirm that the directory exists. |
After the business Pod starts, /dev/sev-guest cannot be read from or written to. | The DaemonSet lacks privileged permissions. | Check whether securityContext.privileged is set to true in the DaemonSet configuration. |
After kubelet restarts, the Pod cannot be scheduled to this resource. | inotify monitoring not effective. | Check whether "inotify: ...kubelet.sock created, restarting." appears in the plugin logs. Under normal conditions, the plugin automatically re-registers. |
kubectl describe node <node-name> | grep -A5 "Allocatable:"# You should see:# tke.cloud.tencent.com/pcc-device: 16
피드백