首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
基础
使用 Minikube 创建集群
使用 kubectl 创建 Deployment
查看 pod 和工作节点
使用 Service 暴露你的应用
运行应用程序的多个实例
执行滚动更新
使用 ConfigMap 来配置 Redis
使用 AppArmor 限制容器对资源的访问
在集群级别应用 Pod 安全标准
在名字空间级别应用 Pod 安全标准
使用 seccomp 限制容器的系统调用
公开外部 IP 地址以访问集群中应用程序
使用 Redis 部署 PHP 留言板应用程序
StatefulSet 基础
使用持久卷部署 WordPress 和 MySQL
使用 StatefulSet 部署 Cassandra
运行 ZooKeeper
服务器端应用API
客户端库
用户认证
使用启动引导令牌
证书签名请求
准入控制器
管理服务账号
使用 RBAC 鉴权
当前位置:
首页>>
技术小册>>
Kubernetes中文教程(六)
小册名称:Kubernetes中文教程(六)
本教程仅适用于新集群。 Pod 安全准入(PSA)在 v1.23 及更高版本默认启用, 因为它[升级到测试版(beta)]。 Pod 安全准入是在创建 Pod 时应用 [Pod 安全标准]的准入控制器。 在本教程中,你将应用 `baseline` Pod 安全标准,每次一个名字空间。 你还可以在集群级别一次将 Pod 安全标准应用于多个名称空间。 有关说明,请参阅[在集群级别应用 Pod 安全标准]。 在你的工作站中安装以下内容: - [KinD] - [kubectl] ## 创建集群 2. 按照如下方式创建一个 `KinD` 集群: ```shell kind create cluster --name psa-ns-level ``` 输出类似于: ``` Creating cluster "psa-ns-level" ... ✓ Ensuring node image ✓ 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/ ``` 1. 将 kubectl 上下文设置为新集群: ```shell 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` 的新名字空间: ```shell kubectl create ns example ``` 输出类似于: ``` namespace/example created ``` ## 为该命名空间启用 Pod 安全标准检查 1. 使用内置 Pod 安全准入所支持的标签在此名字空间上启用 Pod 安全标准。 在这一步中,我们将根据最新版本(默认值)对基线 Pod 安全标准发出警告。 ```shell kubectl label --overwrite ns example \ pod-security.kubernetes.io/warn=baseline \ pod-security.kubernetes.io/warn-version=latest ``` 1. 你可以使用标签在任何名字空间上配置多个 Pod 安全标准检查。 以下命令将强制(`enforce`) 执行基线(`baseline`)Pod 安全标准, 但根据最新版本(默认值)对受限(`restricted`)Pod 安全标准执行警告(`warn`)和审核(`audit`)。 ```shell 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 ``` ## 验证 Pod 安全标准 1. 在 `example` 名字空间中创建一个基线 Pod: ```shell kubectl apply -n example -f https://k8s.io/examples/security/example-baseline-pod.yaml ``` Pod 确实启动正常;输出包括一条警告信息。例如: ``` Warning: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false , unrestricted capabilities , runAsNonRoot != true , seccompProfile pod/nginx created ``` 1. 在 `default` 名字空间中创建一个基线 Pod: ```shell kubectl apply -n default -f https://k8s.io/examples/security/example-baseline-pod.yaml ``` 输出类似于: ``` pod/nginx created ``` Pod 安全标准实施和警告设置仅被应用到 `example` 名字空间。 以上 Pod 安全标准仅被应用到 `example` 名字空间。 你可以在没有警告的情况下在 `default` 名字空间中创建相同的 Pod。 ## 清理 现在通过运行以下命令删除你上面创建的集群: ```shell kind delete cluster --name psa-ns-level ``` ## - 运行一个 [shell 脚本] 一次执行所有前面的步骤。 1. 创建 KinD 集群 2. 创建新的名字空间 3. 在 `enforce` 模式下应用 `baseline` Pod 安全标准, 同时在 `warn` 和 `audit` 模式下应用 `restricted` Pod 安全标准。 4. 创建一个应用以下 Pod 安全标准的新 Pod - [Pod 安全准入] - [Pod 安全标准] - [在集群级别应用 Pod 安全标准]
上一篇:
在集群级别应用 Pod 安全标准
下一篇:
使用 seccomp 限制容器的系统调用
该分类下的相关小册推荐:
Kubernets合辑9-资源约束
Kubernetes中文教程(五)
Kubernets合辑15-持续部署
Kubernetes中文教程(四)
Kubernets合辑10-网络
Kubernets合辑5-Pod控制器
Kubernets合辑3-kubernetes介绍
Kubernets合辑7-存储
Kubernetes中文教程(三)
云原生-K8S入门实战
Kubernets合辑6-服务发现
Kubernets合辑4-kubernetes入门