Note
本教程仅适用于新集群。
Pod 安全准入(PSA)在 v1.23 及更高版本默认启用, 因为它升级到测试版(beta)。 Pod 安全准入是在创建 Pod 时应用 Pod 安全标准的准入控制器。 在本教程中,你将应用 baseline
Pod 安全标准,每次一个名字空间。
你还可以在集群级别一次将 Pod 安全标准应用于多个名称空间。
在你的工作站中安装以下内容:
kubectl
KinD
集群:kind create cluster --name psa-ns-level --image kindest/node:v1.23.0
输出类似于:
Creating cluster "psa-ns-level" ...将 kubectl 上下文设置为新集群:
✓ Ensuring node image (kindest/node:v1.23.0) 🖼
✓ Preparing nodes 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
Set kubectl context to "kind-psa-ns-level"
You can now use your cluster with:
kubectl cluster-info --context kind-psa-ns-level
Not sure what to do next? 😅 Check out https://kind.sigs.k8s.io/docs/user/quick-start/
kubectl cluster-info --context kind-psa-ns-level
输出类似于:
Kubernetes control plane is running at https://127.0.0.1:50996
CoreDNS is running at https://127.0.0.1:50996/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
创建一个名为 example
的新名字空间:
kubectl create ns example
输出类似于:
namespace/example created
kubectl label --overwrite ns example \可以使用标签在任何名字空间上启用多个 Pod 安全标准。 以下命令将强制(
pod-security.kubernetes.io/warn=baseline \
pod-security.kubernetes.io/warn-version=latest
enforce
) 执行基线(baseline
)Pod 安全标准, 但根据最新版本(默认值)对受限(restricted
)Pod 安全标准执行警告(warn
)和审核(audit
)。 kubectl label --overwrite ns example \
pod-security.kubernetes.io/enforce=baseline \
pod-security.kubernetes.io/enforce-version=latest \
pod-security.kubernetes.io/warn=restricted \
pod-security.kubernetes.io/warn-version=latest \
pod-security.kubernetes.io/audit=restricted \
pod-security.kubernetes.io/audit-version=latest
example
名字空间中创建一个最小的 pod:cat <<EOF > /tmp/pss/nginx-pod.yaml将 Pod 规约应用到集群中的
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
EOF
example
名字空间中: kubectl apply -n example -f /tmp/pss/nginx-pod.yaml
输出类似于:
Warning: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "nginx" must set securityContext allowPrivilegeEscalation=false), unrestricted capabilities (container "nginx" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "nginx" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "nginx" must set securityContext seccompProfile.type to "RuntimeDefault" or "Localhost")将 Pod 规约应用到集群中的
pod/nginx created
default
名字空间中: kubectl apply -n default -f /tmp/pss/nginx-pod.yaml
输出类似于:
pod/nginx created
以上 Pod 安全标准仅被应用到 example
名字空间。 你可以在没有警告的情况下在 default
名字空间中创建相同的 Pod。
运行 kind delete cluster -name psa-ns-level
删除创建的集群。
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。