k3s에 컨테이너화된 SUSE Manager 프록시 설치

1. k3s 설치

컨테이너 호스트 시스템에 로드 밸런서 및 traefik 라우터를 제외하고 k3s를 설치합니다(<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 설치

helm을 설치하려면 컨테이너 모듈이 필요합니다.

설치하려면 다음을 실행:

helm의 zypper

4. metalLB 설치

MetalLB는 SUSE Manager 프록시 포드 서비스를 외부로 노출하는 로드 밸런서입니다. 설치하려면 다음을 실행:

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 프록시만 노출하는 경우 해당 범위는 단일 주소로 감소할 수 있습니다. 이러한 주소는 서버 네트워크의 하위 집합이어야 합니다.

다음 설정과 배포된 네트워크에 적합한 IP 주소 범위를 갖는 metallb-config.yaml 구성 파일을 생성합니다.

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 프록시 서비스에 사용할 IP 주소를 강제 적용하는 구성 파일을 생성합니다. 이 IP 주소는 프록시 구성을 생성할 때 프록시 FQDN이 입력한 주소여야 합니다. 또한, 프록시에 연결하려면 SUSE Manager 서버 및 클라이언트 시스템 모두에서 해당 주소를 확인할 수 있어야 합니다.

이 예에서는 192.168.122.241을 사용합니다.

다음과 같은 내용을 갖는 custom-values.yaml 파일을 생성합니다. MetalLB IP 주소 범위에 1개의 주소만 포함된 경우 마지막 줄을 제거할 수 있습니다.

services:
  annotations:
    metallb.universe.tf/allow-shared-ip: key-to-share-ip
    metallb.universe.tf/loadBalancerIPs: 192.168.122.241

metallb.universe.tf/allow-shared-ip 파라미터는 변경할 필요가 없습니다. metallb.universe.tf/loadBalancerIPs 파라미터를 네트워크 설정에 적합하도록 조정해야 합니다.

SUSE Manager 프록시 포드에서 사용할 볼륨의 스토리지를 구성하려면 다음 클레임에 대한 영구 볼륨을 정의합니다. 자세한 내용은 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 프록시 설정의 설명과 같이 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