集群限制说明
本文描述了 AI 容器服务平台集群与公版 k8s 集群之间的差异。
控制平面不可见
由于核心架构限制,用户无法查看 Master 节点,只能看到 Worker 节点。
shell
% kubectl get nodes
NAME STATUS ROLES AGE VERSION
re-dauudxrcao3ltxag Ready <none> 43m v1.26.15
无法查看系统组件:
- kube-apiserver
- kube-scheduler
- kube-controller-manager
- etcd
shell
% kubectl get namespaces
NAME STATUS AGE
default Active 54m
kube-node-lease Active 54m
kube-public Active 54m
kube-system Active 54m
monitoring Active 31m
% kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-954b84c47-79vwb 1/1 Running 0 55m
coredns-954b84c47-gl4bc 1/1 Running 0 55m
helm-controller-6b98596f65-j9czk 1/1 Running 0 55m
helm-install-prometheus-6hr87 0/1 Completed 0 24m
Pod 安全策略限制
所有 Pod 强制遵循 baseline
安全策略,无法创建越权的工作负载:
- 禁止
hostPath
挂载 - 禁用
hostNetwork
/hostPorts
- 禁止
privileged
特权模式 - 限制
sysctls
内核参数调整
NOTE
如果对 hostpath 有特殊要求,可以联系技术支持。
存储与网络资源限制
StorageClass
/IngressClass
/CSIDriver
等集群级资源仅允许使用预置配置。
- 网络:仅限
nginx
Ingress Controller - 存储:仅限
longhorn
StorageClass,PVC 大小总上限为 100 GiB。如开启集群监控,需占用 52 GiB。
NOTE
如果需要更多存储空间,或需要挂载其他存储,请联系技术支持。
节点操作限制
禁用以下指令:
kubectl delete node
kubectl top node
Node IP 非真实物理节点 IP,因此无法通过 SSH 访问物理节点。
shell
root@aic-c7ljzcmxyaxh3ust-aicoder-0:~# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
re-day4iarz6zr3wzbo Ready <none> 17h v1.26.15 10.253.105.66 <none> Ubuntu 22.04.4 LTS 5.15.0-94-generic containerd://1.7.7-k3s1
监控限制
/stats/summary
等 kubelet API 关闭- 推荐使用 AI 容器服务平台网页端集群监控功能。详见集群监控。
开启监控的集群可查看到相关 Pods。
shell
% kubectl get pods -n monitoring
NAME READY STATUS RESTARTS AGE
prometheus-kube-prometheus-operator-586c7b58bd-hbdmr 1/1 Running 0 24m
prometheus-kube-state-metrics-d4fb5dfdc-2mz7v 1/1 Running 0 24m
prometheus-prometheus-kube-prometheus-prometheus-0 2/2 Running 0 23m