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 ) ; 这 样 用 户 就 可 以 在 这 个 命 名 空 间 中 部 署 自 己 的 资 源 了 。
Note
本教程仅适用于新集群。
Pod 安全准入(PSA)在 v1.23 及更高版本默认启用, 因为它升级到测试版(beta)。 Pod 安全准入是在创建 Pod 时应用 Pod 安全标准的准入控制器。 在本教程中,你将应用 baseline
Pod 安全标准,每次一个名字空间。
你还可以在集群级别一次将 Pod 安全标准应用于多个名称空间。
在你的工作站中安装以下内容:
KinD
kubectl
KinD
集群: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/
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-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
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/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
删除创建的集群。
任何一个大型的应用程序和服务,都必须会使用到高性能的数据存储解决方案,用来准确(ACID,原子性Atomicity、一致性Consistency...
第十四章 Android组件详解到目前为止,我们已经一同学习了Android应用程序中的结构与典型元素,其中包括用户界面元素以及数据存...
Android 碎片(Fragment)碎片是活动的一部分,是的活动更加的模块化设计。我们可以任务碎片是一种子活动。下面是关于碎片的重要知...
Spark Streaming监控应用程序除了Spark的监控功能,Spark Streaming增加了一些专有的功能。应用StreamingContext的时候,Spark w...
正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。许多程序设计语言都支持利用正则表达式进行字符串操作...
MongoDB 下载MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从 MongoDB 官网下载安装,MongoDB 预编译二进制...
语法MongoDB 查询数据的语法格式如下:db.COLLECTION_NAME.find()find() 方法以非结构化的方式来显示所有文档。如果你需要以...
在本章中,我们将介绍报表的基础知识以及如何创建报表。报表提供了一种查看,格式化和汇总Microsoft Access数据库中信息的方法。...