|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
|
这是尚未发布的文档。 Admission Controller 1.34-dev. |
使用 Hauler 进行隔离安装
本指南展示了如何使用 Hauler 在隔离的环境中安装 SUSE Security Admission Controller。Hauler 是一个帮助用户在隔离的环境中运行工作负载的工具。它将 APP 所需的资源移动到这些隔离环境中。
Admission Controller 提供一个清单文件,包含在私有环境中运行 Admission Controller 所需的所有资源。本文档描述了您如何使用它。请参考 Hauler 文档以了解更多信息。
使用 Hauler 清单的基本工作流程是:
-
从 Admission Controller 发布页面获取它
-
将运行 Admission Controller 所需的所有资源加载到本地存储中
-
将它们导出到一个文件中
-
将文件移动到私有环境中
-
将资源加载到在私有环境中运行的 Hauler 中
-
将所有内容复制到注册表中,以便在您的隔离环境中的安装过程中使用
从 Helm 图表发布页面下载 Hauler 清单
从 hauler_manifest.yml 的 Admission Controller 下载 发布页面。
将清单中定义的资源同步到您的 Hauler 存储中:
hauler store sync --filename hauler_manifest.yaml
Hauler 从清单中下载所有资源到本地存储。此过程需要几分钟。完成后,您可以使用 hauler store info 命令查看同步的资源。
生成包含所有 Admission Controller 资源的 tarball 文件。
运行 Hauler 命令将之前加载到存储中的所有资源导出到文件:
hauler store save --filename kubewarden-resources.tar.zst
|
Admission Controller 容器镜像支持 x86_64 和 Arm 架构。因此,当您将资源保存到文件中时,您可能会看到类似这样的警告信息:
为了避免此警告信息,您可以设置 |
将 tarball 转移到您的隔离环境中。
现在您在 Admission Controller 中拥有所有 kubewarden-resources.tar.zst 资源,将其复制到您的隔离环境中并加载到 Hauler 存储中:
hauler store load --filename kubewarden-resources.tar.zst
# Check if the resources are loaded
hauler store info
现在安装 Admission Controller 所需的所有资源都在您隔离环境中的 Hauler 存储中。
填充私有注册表。
要使用 Hauler 存储中的资源,必须将它们提供在内部注册表中。您可以使用 Hauler 命令将它们复制到您的私有注册表中。
hauler store copy registry://localhost:5000
您还可以运行 Hauler 来启动一个包含 Hauler 存储中所有资源的注册表。此储存库不安全,您需要调整集群配置:
# Find IP address of your host
# hostname -I
# Update registries.yaml for k3s based cluster to allow insecure access
# mirrors:
# "<HOST_IP>:5000":
# endpoint:
# - "http://<HOST_IP>:5000"
# configs:
# "<HOST_IP>:5000":
# tls:
# insecure_skip_verify: true
# Configure policy-server to allow pulling policies from insecure sources
# helm install .. kubewarden-defaults .. --set policyServer.insecureSources[0]=<HOST_IP:5000>
hauler store serve registry
这将在 localhost:5000 地址启动一个储存库。从此时起,您可以使用其他命令,如 Skopeo,将 Admission Controller 使用的所有容器镜像、策略模块和 Helm 图表复制到您的私有储存库中。
安装 Admission Controller
现在您的私有储存库拥有所需的一切,您可以安装 Admission Controller。与标准 Admission Controller 安装的不同之处在于,您需要将容器镜像和策略中的注册表更改为私有注册表。此外,您需要从 OCI 工件安装 Helm 图表。
安装 Admission Controller 堆栈:
helm install --wait -n kubewarden kubewarden-crds --create-namespace \
oci://<REGISTRY.YOURDOMAIN.COM:PORT>/hauler/kubewarden-crds
helm install --wait -n kubewarden kubewarden-controller \
--set "global.cattle.systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT>" \
oci://<REGISTRY.YOURDOMAIN.COM:PORT>/hauler/kubewarden-controller
|
要使用
必须定义 |
helm install --wait -n kubewarden \
kubewarden-defaults oci://<REGISTRY.YOURDOMAIN.COM:PORT>/hauler/kubewarden-defaults \
--set global.cattle.systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT>
最后,配置每个策略服务器以从您的私有储存库中获取策略。请参见文档的 使用私有储存库 部分。
现在在您的集群中创建 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
|
|