베어메탈 서버용 주니퍼 클라우드 네이티브 라우터 설치 및 확인
주니퍼 클라우드 네이티브 라우터(클라우드 네이티브 라우터)는 JCNR-컨트롤러(cRPD)를 사용하여 컨트롤 플레인 기능을 제공하고 JCNR-CNI를 사용하여 컨테이너 네트워크 인터페이스를 제공합니다. 주니퍼 클라우드 네이티브 라우터는 DPDK 지원 vRouter를 사용하여 고성능 데이터 플레인 기능을 제공하고 Syslog-NG를 사용하여 알림 기능을 제공합니다. 이 섹션에서는 클라우드 네이티브 라우터의 이러한 구성 요소를 설치하는 방법에 대해 설명합니다.
Helm Chart를 사용하여 주니퍼 클라우드 네이티브 라우터 설치
이 섹션을 읽고 클라우드 네이티브 라우터 이미지 구성 요소를 Docker에 로드하고 Helm 차트를 사용하여 클라우드 네이티브 라우터 구성 요소를 설치하는 데 필요한 단계를 알아봅니다.
- System Requirements for Baremetal Servers(베어메탈 서버에 대한 시스템 요구 사항) 섹션을 검토하여 클러스터에 필요한 모든 구성이 있는지 확인합니다.
- 원하는 클라우드 네이티브 라우터 소프트웨어 패키지를 원하는 디렉터리에 다운로드합니다.
패키지를 다운로드하여 클라우드 네이티브 라우터만 설치하거나, 패키지를 다운로드하여 JNCR을 주니퍼 cSRX와 함께 설치할 수 있습니다. 사용 가능한 패키지에 대한 설명은 클라우드 네이티브 라우터 소프트웨어 다운로드 패키지를 참조하십시오. 주니퍼 cSRX를 지금 설치하고 싶지 않다면 나중에 작동하는 클라우드 네이티브 라우터 설치에 주니퍼 cSRX를 설치하도록 언제든지 선택할 수 있습니다.
- 다운로드한 패키지를 확장합니다.
tar xzvf <sw_package>.tar.gz
- directory를 기본 설치 디렉토리로 변경합니다.
클라우드 네이티브 라우터만 설치하는 경우 다음을 수행합니다.
cd Juniper_Cloud_Native_Router_<release>
클라우드 네이티브 라우터와 cSRX를 동시에 설치하는 경우:
cd Juniper_Cloud_Native_Router_CSRX_<release>
메모:설치의 나머지 모든 단계에서는 현재 작업 디렉토리가 현재 Juniper_Cloud_Native_Router_<release> 또는 Juniper_Cloud_Native_Router_CSRX_<release> 상태라고 가정합니다.
- 현재 디렉터리의 내용을 봅니다.
ls helmchart images README.md secrets
- helmchart 디렉터리로 변경하고 Helm 차트를 확장합니다.
cd helmchart
클라우드 네이티브 라우터 전용:
ls jcnr-<release>.tgz
tar -xzvf jcnr-<release>.tgz
ls jcnr jcnr-<release>.tgz
결합된 클라우드 네이티브 라우터 및 cSRX의 경우:
ls jcnr_csrx-<release>.tgz
tar -xzvf jcnr_csrx-<release>.tgz
ls jcnr_csrx jcnr_csrx-<release>.tgz
- 배포하려면 클라우드 네이티브 라우터 컨테이너 이미지가 필요합니다. 다음 옵션 중 하나를 선택합니다.
-
주니퍼 네트웍스
enterprise-hub.juniper.net
리포지토리의 이미지를 배포하도록 클러스터를 구성합니다. 배포 Helm 차트에서 리포지토리 자격 증명을 구성하는 방법에 대한 지침은 리포지토리 자격 증명 구성을 참조하세요. -
다운로드한 클라우드 네이티브 라우터 소프트웨어 패키지에 포함된 이미지 tarball에서 이미지를 배포하도록 클러스터를 구성합니다. 이미지를 로컬 컨테이너 런타임으로 가져오는 방법에 대한 지침은 Deploy Prepackaged Images 항목을 참조하십시오.
-
- 라이선스 설치의 단계에 따라 클라우드 네이티브 라우터 라이선스를 설치합니다.
- 호스트 서버의 루트 비밀번호를 다음 행의 secrets/jcnr-secrets.yaml 파일에 입력합니다.
root-password: <add your password in base64 format>
암호는 base64 인코딩 형식으로 입력해야 합니다. 다음과 같이 암호를 인코딩합니다.echo -n "password" | base64 -w0
- 클러스터에 secrets/jcnr-secrets.yaml 을 적용합니다.
kubectl apply -f secrets/jcnr-secrets.yaml namespace/jcnr created secret/jcnr-secrets created
- 원하는 경우 vRouter DPDK 컨테이너에 코어를 할당하는 방법을 구성합니다. 클라우드 네이티브 라우터 포워딩 플레인에 CPU 할당의 내용을 참조하십시오.
- helmchart/jcnr/values.yaml 또는 helmchart/jcnr_csrx/values.yaml 파일을 사용하여 배치에 대한 Helm 차트를 사용자 정의하십시오.
Helm 차트 구성에 대한 설명은 베어 메탈 서버에 대한 클라우드 네이티브 라우터 Helm 차트 사용자 지정 을 참조하십시오.
- 필요에 따라 클라우드 네이티브 라우터 구성을 사용자 지정합니다.
cRPD 사용자 지정을 생성하고 적용하려면 클라우드 네이티브 라우터 구성 사용자 지정 을 참조하십시오.
- 지금 주니퍼 cSRX를 설치하는 경우 cSRX 라이선스 적용 및 cSRX 구성의 절차를 따르십시오.
- 구성에 따라 Cloud-Native Router를 설치할 노드에 레이블을
nodeaffinity
지정합니다(에values.yaml
정의된 경우). 예를 들어:kubectl label nodes ip-10.0.100.17.lab.net key1=jcnr --overwrite
- Helm 차트를 사용하여 주니퍼 클라우드 네이티브 라우터를 구축합니다.
helmchart/jcnr 또는 helmchart/jcnr_csrx 디렉토리로 이동하여 다음 명령을 실행합니다.
helm install jcnr .
helm install jcnr-csrx .
NAME: jcnr LAST DEPLOYED: Fri Dec 22 06:04:33 2023 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None
- 주니퍼 클라우드 네이티브 라우터 구축을 확인합니다.
helm ls
샘플 출력:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION jcnr default 1 <date-time> deployed jcnr-<version> <version>
설치 확인
이 예제 절차에 표시된 출력은 클러스터의 노드 수에 영향을 받습니다. 설정에 표시되는 출력은 이와 관련하여 다를 수 있습니다.
- 명령을 실행하여
kubectl get pods -A
클라우드 네이티브 라우터 Pod의 상태를 확인합니다.명령의 출력에는kubectl
모든 네임스페이스의 Kubernetes 클러스터에 있는 모든 Pod가 표시됩니다. 성공적인 배포는 모든 Pod가 실행 중 상태임을 의미합니다. 이 예시에서는 주니퍼 클라우드 네이티브 라우터 포드를 굵게 표시했습니다. 예를 들어:kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE contrail-deploy contrail-k8s-deployer-579cd5bc74-g27gs 1/1 Running 0 103s contrail jcnr-0-dp-contrail-vrouter-nodes-b2jxp 2/2 Running 0 87s contrail jcnr-0-dp-contrail-vrouter-nodes-vrdpdk-g7wrk 1/1 Running 0 87s jcnr jcnr-0-crpd-0 1/1 Running 0 103s jcnr syslog-ng-ds5qd 1/1 Running 0 103s kube-system calico-kube-controllers-5f4fd8666-m78hk 1/1 Running 0 4h2m kube-system calico-node-28w98 1/1 Running 0 86d kube-system coredns-54bf8d85c7-vkpgs 1/1 Running 0 3h8m kube-system dns-autoscaler-7944dc7978-ws9fn 1/1 Running 0 86d kube-system kube-apiserver-ix-esx-06 1/1 Running 0 86d kube-system kube-controller-manager-ix-esx-06 1/1 Running 0 86d kube-system kube-multus-ds-amd64-jl69w 1/1 Running 0 86d kube-system kube-proxy-qm5bl 1/1 Running 0 86d kube-system kube-scheduler-ix-esx-06 1/1 Running 0 86d kube-system nodelocaldns-bntfp 1/1 Running 0 86d
- 명령을 실행하여 클라우드 네이티브 라우터 daemonsets를
kubectl get ds -A
확인합니다.kubectl get ds -A
명령을 사용하여 daemonset 목록을 가져옵니다. 클라우드 네이티브 라우터 데몬 세트는 굵은 텍스트로 강조 표시됩니다.kubectl get ds -A
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE contrail jcnr-0-dp-contrail-vrouter-nodes 1 1 1 1 1 <none> 90m contrail jcnr-0-dp-contrail-vrouter-nodes-vrdpdk 1 1 1 1 1 <none> 90m jcnr syslog-ng 1 1 1 1 1 <none> 90m kube-system calico-node 1 1 1 1 1 kubernetes.io/os=linux 86d kube-system kube-multus-ds-amd64 1 1 1 1 1 kubernetes.io/arch=amd64 86d kube-system kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 86d kube-system nodelocaldns 1 1 1 1 1 kubernetes.io/os=linux 86d
- 명령을 실행하여 클라우드 네이티브 라우터 스테이트풀셋을
kubectl get statefulsets -A
확인합니다.명령 출력은 스테이트풀셋을 제공한다.
kubectl get statefulsets -A
NAMESPACE NAME READY AGE jcnr jcnr-0-crpd 1/1 27m
- cRPD에 라이선스가 부여되고 적절한 구성이 있는지 확인합니다
- cRPD CLI 액세스 지침은 cRPD CLI 액세스 섹션을 참조하십시오.
- cRPD CLI에 액세스한 후 cli 모드에서 명령을 실행하여
show system license
시스템 라이선스를 확인합니다. 예를 들어:root@jcnr-01:/# cli root@jcnr-01> show system license License usage: Licenses Licenses Licenses Expiry Feature name used installed needed containerized-rpd-standard 1 1 0 2024-09-20 16:59:00 PDT Licenses installed: License identifier: 85e5229f-0c64-0000-c10e4-a98c09ab34a1 License SKU: S-CRPD-10-A1-PF-5 License version: 1 Order Type: commercial Software Serial Number: 1000098711000-iHpgf Customer ID: Juniper Networks Inc. License count: 15000 Features: containerized-rpd-standard - Containerized routing protocol daemon with standard features date-based, 2022-08-21 17:00:00 PDT - 2027-09-20 16:59:00 PDT
-
show configuration | display set
cli 모드에서 명령을 실행하여 cRPD 기본 및 사용자 지정 구성을 확인합니다. 출력은 사용자 지정 구성 및 클라우드 네이티브 라우터 구축 모드를 기반으로 합니다.root@jcnr-01# cli root@jcnr-01> show configuration | display set
exit
명령을 입력하여 Pod 셸을 종료합니다.
- vRouter 인터페이스 구성 확인
- vRouter CLI 액세스 지침은 vRouter CLI 액세스 섹션을 참조하십시오.
- vRouter CLI에 액세스한 후 명령을 실행하여
vif --list
vRouter 인터페이스를 확인합니다. 출력은 클라우드 네이티브 라우터 구축 모드 및 구성에 따라 달라집니다. 하나의 패브릭 인터페이스가 구성된 L3 모드 구축의 예는 다음과 같습니다.$ vif --list Vrouter Interface Table Flags: P=Policy, X=Cross Connect, S=Service Chain, Mr=Receive Mirror Mt=Transmit Mirror, Tc=Transmit Checksum Offload, L3=Layer 3, L2=Layer 2 D=DHCP, Vp=Vhost Physical, Pr=Promiscuous, Vnt=Native Vlan Tagged Mnp=No MAC Proxy, Dpdk=DPDK PMD Interface, Rfl=Receive Filtering Offload, Mon=Interface is Monitored Uuf=Unknown Unicast Flood, Vof=VLAN insert/strip offload, Df=Drop New Flows, L=MAC Learning Enabled Proxy=MAC Requests Proxied Always, Er=Etree Root, Mn=Mirror without Vlan Tag, HbsL=HBS Left Intf HbsR=HBS Right Intf, Ig=Igmp Trap Enabled, Ml=MAC-IP Learning Enabled, Me=Multicast Enabled vif0/0 Socket: unix MTU: 1514 Type:Agent HWaddr:00:00:5e:00:01:00 Vrf:65535 Flags:L2 QOS:-1 Ref:3 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:0 bytes:0 errors:0 TX packets:0 bytes:0 errors:0 Drops:0 vif0/1 PCI: 0000:5a:02.1 (Speed 10000, Duplex 1) NH: 6 MTU: 9000 Type:Physical HWaddr:ba:9c:0f:ab:e2:c9 IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:0 Flags:L3L2Vof QOS:0 Ref:12 RX port packets:66 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:5a:02.1 Status: UP Driver: net_iavf RX packets:66 bytes:5116 errors:0 TX packets:0 bytes:0 errors:0 Drops:0 vif0/2 PMD: eno3v1 NH: 9 MTU: 9000 Type:Host HWaddr:ba:9c:0f:ab:e2:c9 IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:65535 Flags:L3L2DProxyEr QOS:-1 Ref:13 TxXVif:1 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:0 bytes:0 errors:0 TX packets:66 bytes:5116 errors:0 Drops:0 TX queue packets:66 errors:0 TX device packets:66 bytes:5116 errors:0
exit
명령을 입력하여 Pod 셸을 종료합니다.