설치하기 전에
- Red Hat과 주니퍼 네트웍스 계정을 설정합니다.
호스팅된 Assisted Installer 서비스를 사용하려면 Red Hat 계정이 필요하며, 주니퍼 네트웍스 다운로드 사이트( https://support.juniper.net/support/downloads/?p=contrail-networking)에서 CN2 매니페스트를 다운로드하고 https://enterprise-hub.juniper.net 에서 컨테이너 리포지토리에 액세스하려면 주니퍼 네트웍스 계정이 필요합니다.
- 패브릭 네트워크를 설정하고 사용자 관리 네트워킹을 사용하여 설치하는지 또는 클러스터 관리 네트워킹으로 설치하는지에 따라 노드를 패브릭에 연결합니다.
- 설치 컴퓨터를 구성합니다. 이 컴퓨터는 Assisted Installer 명령 또는 고급 클러스터 관리 명령을 실행하는 컴퓨터입니다.
- 설치 시스템에 새 OS를 설치하고 다음에 대해 OS를 최소한으로 구성합니다.
- 고정 IP 주소 및 마스크(예: 172.16.0.10/24) 및 게이트웨이
- 하나 이상의 DNS 서버에 대한 액세스
- 루트 SSH 액세스를 포함한 SSH 연결
- 증권 시세 표시기
- curl(보조 설치 프로그램 전용)
- jq(보조 설치 프로그램 전용)
- Helm 3.0 이상을 설치합니다(선택 사항). Contrail Analytics를 설치하려면 Helm이 필요합니다.
다음 단계는 사용자의 편의를 위해 https://helm.sh/docs/intro/install/ 에서 복사됩니다.
-
get_helm.sh 스크립트를 다운로드합니다.
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
-
Helm을 설치합니다.
chmod 700 get_helm.sh
./get_helm.sh
-
- 설치 시스템에 새 OS를 설치하고 다음에 대해 OS를 최소한으로 구성합니다.
- 주니퍼 네트웍스에서 CN2 매니페스트를 다운로드합니다.
- CN2 매니페스트(매니페스트 참조)를 로컬 컴퓨터에 다운로드합니다.
- 다운로드한 매니페스트 및 도구 패키지를 설치 컴퓨터에 복사하고 압축을 풉니다.
tar -xzvf contrail-manifests-openshift-<version>.tgz
- 사용하려는 매니페스트를 식별하고 별도의 디렉터리에 복사합니다. 매니페스트에 대한 설명은 릴리스에 대한 매니페스트를 참조하세요.
해당하는 경우 하위 디렉터리의 매니페스트를 포함하여 사용하려는 모든 매니페스트를 복사해야 합니다. 이 예제에서는 매니페스트를 manifests 디렉터리에 복사합니다. 하위 디렉터리 자체를 복사하지 마세요. manifests 디렉터리는 플랫 디렉터리여야 합니다.
- 매니페스트를 리포지토리 로그인 자격 증명으로 채웁니다.
리포지토리 로그인 자격 증명을 contrail-manifests-openshift/auth-registry 매니페스트에 추가합니다. 이러한 매니페스트는 이전 단계의 manifests 디렉터리에 있어야 합니다. 리포지토리 자격 증명을 추가하는 방법에 대한 자세한 내용은 리포지토리 자격 증명 구성을 참조하십시오.
- 필요에 따라 환경에 대한 매니페스트를 사용자 지정합니다.
VM에서 클러스터 노드를 실행하는 경우 다음 파일을 편집하여 인터페이스의 실제 이름을 참조합니다. 이러한 매니페스트는 VM의 명명된 인터페이스에서 체크섬 오프로드를 사용하지 않도록 설정합니다. (체크섬 오프로드는 일반적으로 베어메탈 서버의 실제 NIC에서만 지원됩니다.)
- 99-disable-offload-master.yaml - 이 매니페스트는 Kubernetes 컨트롤 플레인 트래픽에 사용되는 인터페이스의 컨트롤 플레인 노드에서 오프로드를 비활성화합니다. 예제에서 172.16.0.0/24 네트워크에 연결되는 인터페이스입니다.
- 99-disable-offload-worker.yaml - 이 매니페스트는 Kubernetes 컨트롤 플레인 트래픽에 사용되는 인터페이스의 작업자 노드에서 오프로드를 비활성화합니다. 예제에서 172.16.0.0/24 네트워크에 연결되는 인터페이스입니다.
- 99-disable-offload-master-vrrp.yaml - 이 매니페스트는 Contrail 컨트롤 플레인 및 사용자 데이터 플레인 트래픽에 사용되는 인터페이스의 컨트롤 플레인 노드에서 오프로드를 비활성화합니다. Contrail 제어 및 데이터 트래픽에 대해 별도의 인터페이스를 실행할 때(예: 클러스터 관리 네트워킹을 사용하는 경우)에만 포함하십시오. 이는 클러스터 관리 네트워킹 예제에서 10.16.0.0/24 네트워크에 연결되는 인터페이스입니다.
- 99-disable-offload-worker-vrrp.yaml - 이 매니페스트는 Contrail 컨트롤 플레인 및 사용자 데이터 플레인 트래픽에 사용되는 인터페이스의 작업자 노드에서 오프로드를 비활성화합니다. Contrail 제어 및 데이터 트래픽에 대해 별도의 인터페이스를 실행할 때(예: 클러스터 관리 네트워킹을 사용하는 경우)에만 포함하십시오. 이는 클러스터 관리 네트워킹 예제에서 10.16.0.0/24 네트워크에 연결되는 인터페이스입니다.
이러한 매니페스트에서 또는 줄을
ExecStart=/sbin/ethtool -K ens3 tx off
ExecStart=/sbin/ethtool -K ens4 tx off
찾아 컨트롤 플레인 또는 작업자 노드의 인터페이스 이름과 일치하도록 인터페이스 이름을 적절하게 변경합니다. - 클러스터 관리 네트워킹을 사용하는 경우 Contrail 제어 및 데이터 네트워크를 지정합니다.
다음 파일을 편집하여 Contrail 컨트롤 플레인 및 사용자 데이터 플레인 트래픽에 사용 중인 서브넷 및 게이트웨이를 참조합니다.
- 99-network-configmap.yaml - 이 매니페스트는 Contrail 컨트롤 플레인 및 사용자 데이터 플레인 트래픽에 대한 네트워크를 지정합니다. 매니페스트에서 contrail-network-config ConfigMap 사양의 주석 처리를 제거하고 적절한 서브넷 및 게이트웨이(예: 10.16.0.0/24 및 10.16.0.254)를 지정합니다.
- CN2를 주니퍼 Apstra와 통합하는 경우 주니퍼 Apstra 로그인 자격 증명을 구성합니다.
contrail-manifests-openshift/plugins/111-apstra-secret.yaml 매니페스트에서 Apstra 로그인 자격 증명을 구성합니다. 지정한 사용자 이름과 비밀번호가 base64로 인코딩되어 있는지 확인합니다. 자세한 내용은 https://www.juniper.net/documentation/us/en/software/cn-cloud-native23.3/cn-cloud-native-feature-guide/index.html 를 참조하십시오.
- 설치 시스템에 contrailstatus를 설치합니다. Contrailstatus는 CN2 마이크로서비스 및 CN2 관련 리소스를 쿼리하는 데 사용할 수 있는 kubectl 플러그인입니다.
contrailstatus 실행 파일은 다운로드한 도구 패키지 내에 패키지되어 있습니다. kubectl-contrailstatus 실행 파일을 추출하고 /usr/local/bin에 복사합니다.
- 부하 분산 장치를 설치합니다(사용자 관리 네트워킹으로 실행하는 경우). 클러스터 관리 네트워킹으로 실행하는 경우에는 이 단계가 필요하지 않습니다.
이 예에서는 설치 시스템에서 haxproxy를 실행합니다. 설치에 대해 다른 부하 분산 장치를 실행하도록 선택할 수 있습니다.
- 부하 분산 장치를 설치합니다.
예를 들어:
sudo dnf install haproxy
- 부하 분산 장치를 구성합니다.
단일 IP 주소(172.16.0.10)를 사용하여 API 및 수신 트래픽을 클러스터의 노드에 배포합니다.
표 1: 로드 밸런서 항목의 예 트래픽 프론트 엔드 백엔드 유형Type of Traffic Front End Back End 증권 시세 표시기
172.16.0.10:6443
172.16.0.11:6443
172.16.0.12:6443
172.16.0.13:6443
api-int 172.16.0.10:22623
172.16.0.11:22623
172.16.0.12:22623
172.16.0.13:22623
https (영어) 172.16.0.10:443
172.16.0.14:443
172.16.0.15:443
http (영문) 172.16.0.10:80
172.16.0.14:80
172.16.0.15:80
frontend api bind 172.16.0.10:6443 default_backend controlplaneapi frontend apiinternal bind 172.16.0.10:22623 default_backend controlplaneapiinternal frontend secure bind 172.16.0.10:443 default_backend secure frontend insecure bind 172.16.0.10:80 default_backend insecure backend controlplaneapi balance roundrobin server cp0 172.16.0.11:6443 check server cp1 172.16.0.12:6443 check server cp2 172.16.0.13:6443 check backend controlplaneapiinternal balance roundrobin server cp0 172.16.0.11:22623 check server cp1 172.16.0.12:22623 check server cp2 172.16.0.13:22623 check backend secure balance roundrobin server worker0 172.16.0.14:443 check server worker1 172.16.0.15:443 check backend insecure balance roundrobin server worker0 172.16.0.14:80 check server worker1 172.16.0.15:80 check
- 부하 분산 장치를 시작합니다.
예를 들어:
systemctl start haproxy
메모:selinux로 실행하는 경우 haproxy가 포트에서 수신 대기하도록 명시적으로 허용해야 할 수 있습니다(
setsebool -P haproxy_connect_any 1)
.
- 부하 분산 장치를 설치합니다.
- 네트워크에 DNS/DHCP 서버를 설치하여 쿠버네티스 노드를 서비스한다.
이 예에서는 설치 컴퓨터에서 dnsmasq를 실행합니다. 설치에 대해 다른 DNS/DHCP 서버를 실행하도록 선택할 수 있습니다.
- DNS/DHCP 서버를 설치합니다.
Dnsmasq는 일부 RHEL OS 패키지에 사전 설치되어 있습니다. 사전 설치되어 있지 않은 경우 다음과 같이 설치할 수 있습니다.
sudo dnf install dnsmasq
- 도메인 이름 및 DHCP 항목을 구성합니다.
표 2: DHCP 할당 예 정규화된 도메인 이름 IP 주소 ocp1.mycluster.contrail.lan 172.16.0.11 ocp2.mycluster.contrail.lan 172.16.0.12 ocp3.mycluster.contrail.lan 172.16.0.13 ocp4.mycluster.contrail.lan 172.16.0.14 ocp5.mycluster.contrail.lan 172.16.0.15 메모:Assisted Installer 서비스를 사용하는 경우 정규화된 도메인 이름은 다음과 같이 생성됩니다.
<hostname>.<cluster name>.<domain name>
이 예에서는 호스트 이름, mycluster 클러스터 이름 및 contrail.lan 도메인 이름으로 을(를) 사용합니다ocpn.
- DNS 항목을 구성합니다.
표 3: DNS 항목의 예 호스트 이름 IP 주소 참고 ocp1.mycluster.contrail.lan 172.16.0.11 DHCP 할당과 동일 ocp2.mycluster.contrail.lan 172.16.0.12 DHCP 할당과 동일 ocp3.mycluster.contrail.lan 172.16.0.13 DHCP 할당과 동일 ocp4.mycluster.contrail.lan 172.16.0.14 DHCP 할당과 동일 ocp5.mycluster.contrail.lan 172.16.0.15 DHCP 할당과 동일 api.mycluster.contrail.lan 172.16.0.10 외부 API 트래픽에 대한 로드 밸런서. 사용자 관리 네트워킹에만 필요합니다. api-int.mycluster.contrail.lan 172.16.0.10 내부 API 트래픽을 위한 로드 밸런서입니다. 사용자 관리 네트워킹에만 필요합니다. apps.mycluster.contrail.lan 172.16.0.10 수신 트래픽에 대한 부하 분산 장치. 사용자 관리 네트워킹에만 필요합니다. *.apps.mycluster.contrail.lan 172.16.0.10 수신 트래픽에 대한 부하 분산 장치. 사용자 관리 네트워킹에만 필요합니다. dhcp-host=52:54:00:00:11:11,ocp1.mycluster.contrail.lan,172.16.0.11 dhcp-host=52:54:00:00:11:22,ocp2.mycluster.contrail.lan,172.16.0.12 dhcp-host=52:54:00:00:11:33,ocp3.mycluster.contrail.lan,172.16.0.13 dhcp-host=52:54:00:00:11:44,ocp4.mycluster.contrail.lan,172.16.0.14 dhcp-host=52:54:00:00:11:55,ocp5.mycluster.contrail.lan,172.16.0.15 host-record=api.mycluster.contrail.lan,172.16.0.10 address=/.apps.mycluster.contrail.lan/172.16.0.10 address=/api-int.mycluster.contrail.lan/172.16.0.10
- DNS/DHCP 서버를 시작합니다.
예를 들어:
systemctl start dnsmasq
- DNS/DHCP 서버를 설치합니다.
- Red Hat에서 OpenShift 명령줄 인터페이스 도구(oc)를 다운로드합니다. 이 패키지에는 kubectl이 포함되어 있습니다.
- 로컬 컴퓨터의 브라우저에서 https://console.redhat.com/openshift/downloads#tool-oc 로 이동하여 OpenShift 명령줄 인터페이스 도구(oc)를 다운로드합니다.
- 다운로드한 패키지를 Assisted Installer 클라이언트 컴퓨터에 복사하고 압축을 풉니다.
tar -xzvf openshift-client-linux.tar.gz README.md oc kubectl
- oc 및 kubectl 실행 파일을 경로의 디렉터리(예: /usr/local/bin)에 복사합니다.