在 k3s 上安装容器化 SUSE Manager 代理
1. 安装 k3s
在容器主机计算机上,安装 k3s
并禁用负载平衡器和 traefik 路由器(将 <K3S_HOST_FQDN>
替换为 k3s 主机的 FQDN):
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik --disable=servicelb --tls-san=<K3S_HOST_FQDN>" sh -
2. 配置群集访问权限
helm
需要使用配置文件来连接目标 Kubernetes 群集。
在群集服务器计算机上运行以下命令来创建 kubeconfig-k3s.yaml
配置文件。您也可以根据需要将 kubeconfig-k3s.yaml
文件传输到一台正常运行的计算机:
kubectl config view --flatten=true | sed 's/127.0.0.1/<K3S_HOST_FQDN>/' >kubeconfig-k3s.yaml
在调用 helm
前运行以下命令:
export KUBECONFIG=/path/to/kubeconfig-k3s.yaml
3. 安装 helm
需要使用 Containers 模块来安装 |
要进行安装,请运行以下命令:
zypper in helm
4. 安装 metalLB
MetalLB
是负载平衡器,会将 SUSE Manager 代理 Pod 服务向外部公开。要安装该工具,请运行以下命令:
helm repo add metallb https://metallb.github.io/metallb helm install --create-namespace -n metallb metallb metallb/metallb
MetalLB
也需要通过配置文件来获知要使用的虚拟 IP 地址范围。在此示例中,虚拟 IP 地址范围为 192.168.122.240
至 192.168.122.250
,但如果主机只公开 SUSE Manager 代理,则该范围可以缩小为单个地址。这些地址必须是服务器网络的子集。
创建 metallb-config.yaml
配置文件,在其中包含如下设置以及与所部署网络一致的 IP 地址范围:
apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: l2-pool namespace: metallb spec: addresses: - 192.168.122.240-192.168.122.250 --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: l2 namespace: metallb spec: ipAddressPools: - l2-pool
运行以下命令应用此配置:
kubectl apply -f metallb-config.yaml
5. 部署 SUSE Manager 代理 helm 图表
创建一个配置文件,强制指定 MetalLB
将为 SUSE Manager Proxy 服务使用的 IP 地址。此 IP 地址必须是创建代理配置时所输入代理 FQDN 对应的 IP 地址。此外,该 IP 地址必须可由 SUSE Manager 服务器和要连接到代理的客户端系统解析。
此示例将使用 192.168.122.241
。
创建包含以下内容的 custom-values.yaml
文件。如果 MetalLB
IP 地址范围只包含单个地址,则可以去除最后一行。
services: annotations: metallb.universe.tf/allow-shared-ip: key-to-share-ip metallb.universe.tf/loadBalancerIPs: 192.168.122.241
不需要更改 |
要配置 SUSE Manager 代理 Pod 使用的卷存储,请定义以下声明的永久性卷。有关详细信息,请参见 https://kubernetes.io/docs/concepts/storage/persistent-volumes/ (kubernetes) 或 https://rancher.com/docs/k3s/latest/en/storage/ (k3s) 文档。永久性卷声明命名如下:
-
squid-cache-pv-claim
-
/package-cache-pv-claim
-
/tftp-boot-pv-claim
按照 容器化 SUSE Manager Proxy 设置 中所述创建 SUSE Manager 代理的配置。复制并解压缩 tar.gz
配置文件,然后部署 helm 图表:
tar xf /path/to/config.tar.gz helm install uyuni-proxy oci://registry.suse.com/suse/manager/4.3/proxy -f config.yaml -f httpd.yaml -f ssh.yaml -f custom-values.yaml