使用内部注册表部署容器化代理
Table of Contents
您可以在未连接互联网的环境中部署容器化映像。在这种情况下,可以将映像从 SUSE 注册表复制到内部注册表,或保存到 tar
文件。
1. 将映像从 SUSE 注册表复制到内部注册表
下面的示例仅说明 Salt 代理的部署过程。
过程:从内部映像注册表部署 Salt 代理
-
在可访问
registry.suse.com
的计算机上安装skopeo
:zypper in skopeo
这可以是 SUSE Manager 服务器。
-
在不同注册表之间复制映像:
for image in httpd salt-broker squid ssh tftpd; do skopeo copy docker://registry.suse.com/suse/manager/4.3/proxy-$image:latest docker://<your_server>/registry.suse.com/suse/manager/4.3/proxy-$image done skopeo copy docker://k8s.gcr.io/pause:latest docker://<your_server>/k8s.gcr.io/pause:latest
如果注册表不安全,请在每条
skopeo
命令中添加--dest-tls-verify=false
。 -
如果注册表不安全(例如未配置 SSL),请编辑容器化代理虚拟机上的如下文件,在
registries.insecure
部分添加注册表域:/etc/containers/registries.conf
-
启动 pod 前,将 Podman 指向获取内部注册表中的
pause
映像的位置:echo -e '[engine]\ninfra_image = "<您的服务器>/pause:latest"'>>/etc/containers/containers.conf
-
要开始使用内部注册表中的映像,请修改
/etc/sysconfig/uyuni-proxy-systemd-services.config
文件中的NAMESPACE
值。要进行 k3s 部署,请在 helm 安装命令行中添加
--set repository=<your_server>
。
2. Podman 的物理隔离解决方案
下面的示例说明在无法连接互联网的计算机上部署容器化映像的过程。
过程:部署物理隔离的代理
-
启动 pod 前,将 Podman 指向获取内部注册表中的
pause
映像的位置:echo -e '[engine]\ninfra_image = "<您的服务器>/pause:latest"'>>/etc/containers/containers.conf
此命令在 SLE 15 SP3 和更低版本的容器主机上不适用。
-
在连接到互联网的计算机上,运行以下命令:
for image in httpd salt-broker squid ssh tftpd; do podman pull registry.suse.com/suse/manager/4.3/proxy-$image done podman pull k8s.gcr.io/pause podman save -m -o proxy-images.tar \ k8s.gcr.io/pause \ registry.suse.com/suse/manager/4.3/proxy-httpd \ registry.suse.com/suse/manager/4.3/proxy-salt-broker \ registry.suse.com/suse/manager/4.3/proxy-squid \ registry.suse.com/suse/manager/4.3/proxy-ssh \ registry.suse.com/suse/manager/4.3/proxy-tftpd
要进行 k3s 部署,请在 helm 安装命令行中添加
--set repository=<your_server>
。 -
将
proxy-images.tar
传输到物理隔离的代理上。 -
要让映像在需要时可供启动,请运行以下命令:
podman load -i proxy-images.tar