您的位置:58脚本 > kubernetes命名空间 Kubernetes 在名字空间级别应用Pod安全标准

kubernetes命名空间 Kubernetes 在名字空间级别应用Pod安全标准

2023-03-16 20:32 Kubernetes(k8s)手册

kubernetes命名空间 Kubernetes 在名字空间级别应用Pod安全标准

kubernetes命名空间

Kubernetes命名空间是Kubernetes集群中的一个概念,它可以帮助用户将其资源划分为不同的逻辑组。Kubernetes命名空间可以帮助用户在一个集群中创建多个独立的工作区,从而使用户能够在不同的工作区之间进行资源隔离。

Kubernetes命名空间是一个逻辑上的抽象,它可以将集群中的所有资源划分为不同的逻辑部分。例如,用户可以在一个命名空间中部署应用,而在另一个命名空间中部署数据库。这样就可以实现对应用和数据库之间的隔离,避免了不必要的冲突。

Kubernetes命名空间也可以帮助用户实施权限控制。例如,用户可以使用RBAC权限控制机制来限制特定命名空间中特定资源的使用权限。这样就能够保证特定命名空间内部的数据安全性和隔离性。

apiVersion: v1
kind: Namespace
metadata: 
  name: my-namespace

上面是一个Kubernetes命名空间对象的YAML文件,其中name字段表明了该对象所代表的命名空间是my-namespace。当该YAML文件被部署时,Kubernetes会根据该YAML文件生成一个my-namespace 命名 空 间 对 象 (Namespace Object ) ; 这 样 用 户 就 可 以 在 这 个 命 名 空 间 中 部 署 自 己 的 资 源 了 。

Kubernetes 在名字空间级别应用Pod安全标准

在名字空间级别应用 Pod 安全标准

Note
本教程仅适用于新集群。

Pod 安全准入(PSA)在 v1.23 及更高版本默认启用, 因为它升级到测试版(beta)。 Pod 安全准入是在创建 Pod 时应用 Pod 安全标准的准入控制器。 在本教程中,你将应用 ​baseline ​Pod 安全标准,每次一个名字空间。

你还可以在集群级别一次将 Pod 安全标准应用于多个名称空间。

在开始之前

在你的工作站中安装以下内容:

  • KinD
  • kubectl

创建集群

  1. 按照如下方式创建一个 ​KinD ​集群:
  2. kind create cluster --name psa-ns-level --image kindest/node:v1.23.0
    

    输出类似于:

    Creating cluster "psa-ns-level" ...
     ✓ 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/
  3. 将 kubectl 上下文设置为新集群:
  4. 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

应用 Pod 安全标准 

  1. 使用内置 Pod 安全准入所支持的标签在此名字空间上启用 Pod 安全标准。 在这一步中,我们将根据最新版本(默认值)对基线 Pod 安全标准发出警告。
  2. kubectl label --overwrite ns example 
      pod-security.kubernetes.io/warn=baseline 
      pod-security.kubernetes.io/warn-version=latest
  3. 可以使用标签在任何名字空间上启用多个 Pod 安全标准。 以下命令将强制(​enforce​) 执行基线(​baseline​)Pod 安全标准, 但根据最新版本(默认值)对受限(​restricted​)Pod 安全标准执行警告(​warn​)和审核(​audit​)。
  4. 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:
  2. cat <<EOF > /tmp/pss/nginx-pod.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
    spec:
      containers:
        - image: nginx
          name: nginx
          ports:
            - containerPort: 80
    EOF
  3. 将 Pod 规约应用到集群中的 ​example ​名字空间中:
  4. 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/nginx created
  5. 将 Pod 规约应用到集群中的 ​default ​名字空间中:
  6. kubectl apply -n default -f /tmp/pss/nginx-pod.yaml
    

    输出类似于:

    pod/nginx created
    

以上 Pod 安全标准仅被应用到 ​example ​名字空间。 你可以在没有警告的情况下在 ​default ​名字空间中创建相同的 Pod。

清理 

运行 ​kind delete cluster -name psa-ns-level​ 删除创建的集群。


阅读全文
以上是58脚本为你收集整理的kubernetes命名空间 Kubernetes 在名字空间级别应用Pod安全标准全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS