|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
|
这是尚未发布的文档。 Admission Controller 1.34-dev. |
隔离安装
要在隔离的环境中安装 SUSE Security Admission Controller,您需要一个可由 Kubernetes 集群访问的私有开放容器倡议(OCI)注册表。 Admission Controller 策略是 WebAssembly 模块,因此您可以将它们作为 OCI 工件存储在符合 OCI 标准的注册表中。您需要将 Admission Controller 的镜像和策略添加到此 OCI 注册表中。您可以在 工件参考 页面中查看 Admission Controller 工件的列表。以下部分描述了该过程。
|
我们建议使用 Hauler。 请参阅我们的 Hauler 文档页面。 或者,您可以使用下面列出的手动过程。 |
将容器镜像保存在本地
-
我们的每个 Helm 图表都包含一个
imagelist.txt,其中列出了其所使用的容器镜像,并在适用时还包含一个policylist.txt,其中包含了其所使用的策略对应的 OCI Wasm 模块。要获取它们,您可以执行:
helm pull --untar \ kubewarden/kubewarden-crds \ kubewarden/kubewarden-controller \ kubewarden/kubewarden-defaults \ kubewarden/sbomscanner然后将它们合并为一个文件:
cat */imagelist.txt > kubewarden-images.txt -
从 utilities 储存库 下载
kubewarden-save-images.sh和kubewarden-load-images.sh。 -
将 Admission Controller 容器镜像保存到
.tar.gz文件中:./kubewarden-save-images.sh \ --image-list ./kubewarden-images.txt \ --images kubewarden-images.tar.gzDocker 开始拉取用于隔离安装的镜像。此过程需要几分钟时间。完成后,您运行命令的当前目录中会有一个 tarball,
kubewarden-images.tar.gz。
本地保存策略
-
将您想要使用的所有策略添加到
policies.txt文件中:cat */policylist.txt > policies.txt包含默认策略列表的文件位于 Admission Controller 默认 release page 中。
-
从
kubewarden-controller储存库 下载kubewarden-save-policies.sh和kubewarden-load-policies.sh。 -
将策略保存到
.tar.gz文件中:./kubewarden-save-policies.sh --policies-list policies.txt使用
kwctl下载策略。kubewarden-policies.tar.gz存档包含这些策略。
Helm 图表
您需要将以下 Helm 图表下载到您的工作站:
helm pull kubewarden/kubewarden-crds
helm pull kubewarden/kubewarden-controller
helm pull kubewarden/kubewarden-defaults
填充私有注册表
将这些文件移动到隔离的环境中:
-
tgz格式的 Helm 图表(例如,kubewarden-crds-1.23.0.tgz) -
kubewarden-policies.tar.gz -
kubewarden-images.tar.gz -
kubewarden-load-images.sh -
kubewarden-load-policies.sh和 -
policies.txt-
将 Admission Controller 镜像加载到私有注册表中。您需要对本地注册表进行 Docker 客户端身份验证。
./kubewarden-load-images.sh \ --image-list ./kubewarden-images.txt \ --images kubewarden-images.tar.gz \ --registry <REGISTRY.YOURDOMAIN.COM:PORT> -
将 Admission Controller 策略加载到私有注册表中。您应该对本地注册表进行身份验证
kwctl(kwctl使用与docker相同的机制进行身份验证,~/.docker/config.json文件)./kubewarden-load-policies.sh \ --policies-list policies.txt \ --policies kubewarden-policies.tar.gz \ --registry <REGISTRY.YOURDOMAIN.COM:PORT> \ --sources-path sources.yml
-
|
请参阅文档中的 自定义证书颁发机构 部分,以了解如何配置 |
安装 Admission Controller
现在您的私有注册表已具备所有必要条件,您可以安装 Admission Controller。与标准 Admission Controller 安装的唯一区别是您需要将容器镜像和策略中的注册表更改为私有注册表。
安装 Admission Controller 堆栈:
helm install --wait -n kubewarden \
kubewarden-crds kubewarden-crds.tgz
helm install --wait -n kubewarden \
kubewarden-controller kubewarden-controller.tgz \
--set global.cattle.systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT>
|
要在
必须定义 |
helm install --wait -n kubewarden \
kubewarden-defaults kubewarden-defaults.tgz \
--set global.cattle.systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT>
|
要从非 要安装并等待安装完成,请使用以下命令:
如果未设置 |
最后,您需要配置 Policy Server 以从您的私有注册表中获取策略。请参阅文档的使用私有注册表部分。
现在您可以在集群中创建 Admission Controller 策略。策略必须在您的私有注册表中可用。
kubectl apply -f - <<EOF
apiVersion: policies.kubewarden.io/v1
kind: ClusterAdmissionPolicy
metadata:
name: privileged-pods
spec:
module: registry://<REGISTRY.YOURDOMAIN.COM:PORT>/kubewarden/policies/pod-privileged:v0.2.2
rules:
- apiGroups: [""]
apiVersions: [“v1”]
resources: [“pods”]
operations:
- CREATE
mutating: false
EOF
|
|