19.4. 인스턴스 관리
작업 용량을 확장하려면 자동화 컨트롤러 배포와 함께 실행되도록 추가할 수 있는 독립 실행형 실행 노드를 생성합니다. 이러한 실행 노드는 자동화 컨트롤러 Kubernetes 클러스터의 일부가 아닙니다.
컨트롤 노드는 클러스터에서 실행되며 수신기를 통해 실행 노드에 작업을 제출합니다.
이러한 실행 노드는 자동화 컨트롤러에 유형 실행
인스턴스로 등록되므로 작업을 실행하는 데만 사용되며, 작업을 디스패치하거나 웹 요청을 컨트롤 노드로 처리할 수 없습니다.
홉 노드를 추가하여 자동화 컨트롤러의 컨트롤 플레인과 독립 실행형 실행 노드 사이에 있을 수 있습니다. 이러한 홉 노드는 Kubernetes 클러스터의 일부가 아니며 유형 홉
인스턴스로 자동화 컨트롤러에 등록되므로 다른 또는 보다 엄격한 네트워크의 연결할 수 없는 노드에 대한 인바운드 및 아웃바운드 트래픽만 처리합니다.
다음 절차에서는 호스트의 노드 유형을 설정하는 방법을 보여줍니다.
프로세스
-
탐색 패널에서
선택합니다. 인스턴스 목록 페이지에서 를 클릭합니다. 인스턴스 추가 창이 열립니다.
인스턴스에는 다음 속성이 필요합니다.
호스트 이름: (필수) 인스턴스의 정규화된 도메인 이름(공용 DNS) 또는 IP 주소를 입력합니다. 이 필드는 설치 프로그램 기반 배포의
호스트
이름과 동일합니다.참고인스턴스에서 제어 클러스터에서 확인할 수 없는 프라이빗 DNS를 사용하는 경우 DNS 조회 라우팅이 실패하고 생성된 SSL 인증서가 유효하지 않습니다. 대신 IP 주소를 사용합니다.
- 선택 사항: 설명: 인스턴스에 대한 설명을 입력합니다.
- 인스턴스 상태: 이 필드는 자동으로 채워져 있으며 설치할 수 없음을 나타냅니다.
-
리스너 포트: 이 포트는 수신기가 들어오는 연결을 수신 대기하는 데 사용됩니다. 구성에 적합한 포트 를 설정할 수 있습니다. 이 필드는 API의
listener_port
와 동일합니다. 기본값은 27199이지만 고유한 포트 값을 설정할 수 있습니다. 인스턴스 유형:
실행
및홉
노드만 생성할 수 있습니다. Operator 기반 배포는 컨트롤 또는 하이브리드 노드를 지원하지 않습니다.옵션:
- 인스턴스 활성화: 실행 노드에서 작업을 실행할 수 있도록 하려면 이 상자를 선택합니다.
- 정책에 따라 Managed by policy 확인란을 선택하여 인스턴스 할당 방법을 지정합니다.
컨트롤 노드의 피어:
홉 노드를 구성하는 경우:
- 홉 노드에 자동화 컨트롤러에서 직접 요청을 푸시해야 하는 경우 컨트롤에서 피어 박스를 선택합니다.
- 홉 노드가 다른 홉 노드로 피어링된 경우 Control에서 Peers 를 선택하지 않았는지 확인합니다.
실행 노드를 구성하는 경우:
- 실행 노드에 자동화 컨트롤러에서 직접 요청을 푸시해야 하는 경우 컨트롤에서 피어 박스를 선택합니다.
- 실행 노드가 홉 노드에 피어링된 경우 Control에서 Peers 를 선택하지 않았는지 확인합니다.
- 를 클릭합니다.
업데이트된 토폴로지의 그래픽 표시를 보려면 토폴로지 보기를 참조하십시오.
참고새로 생성된 인스턴스에 대한 SSH 액세스 권한이 있는 모든 컴퓨터에서 다음 단계를 완료합니다.
번들 다운로드 옆에 있는
아이콘을 클릭하여 이 새 인스턴스가 포함된 tar 파일과 생성된 노드를 자동화 메시에 설치하는 데 필요한 파일을 다운로드합니다.
설치 번들에는 TLS 인증서 및 키, 인증 기관 및 적절한 수신기 구성 파일이 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow receptor-ca.crt work-public-key.pem receptor.key install_receptor.yml inventory.yml group_vars/all.yml requirements.yml
receptor-ca.crt work-public-key.pem receptor.key install_receptor.yml inventory.yml group_vars/all.yml requirements.yml
-
다운로드한
tar.gz
Install Bundle을 다운로드한 위치에서 추출합니다. 이러한 파일이 원격 시스템의 올바른 위치에 있는지 확인하기 위해 설치 번들에install_receptor.yml
플레이북이 포함됩니다. ansible-playbook
명령을 실행하기 전에inventory.yml
파일에서 다음 필드를 편집합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow all: hosts: remote-execution: ansible_host: localhost # change to the mesh node host name ansible_user: <username> # user provided ansible_ssh_private_key_file: ~/.ssh/<id_rsa>
all: hosts: remote-execution: ansible_host: localhost # change to the mesh node host name ansible_user: <username> # user provided ansible_ssh_private_key_file: ~/.ssh/<id_rsa>
-
ansible_host
가 노드의 IP 주소 또는 DNS로 설정되어 있는지 확인합니다. -
ansible_user
를 설치를 실행하는 사용자 이름으로 설정합니다. -
인스턴스에 연결하는 데 사용되는
개인 키의 파일 이름을 포함하도록 ansible_ssh
_private_key_file을 설정합니다. -
inventory.yml
파일의 내용은 템플릿 역할을 하며 메시 토폴로지에서 수신기 노드의 설치 및 구성 중에 적용되는 역할에 대한 변수를 포함합니다. 기타 일부 필드를 수정하거나 고급 시나리오에 대해 전체적으로 파일을 교체할 수 있습니다. 자세한 내용은 역할 변수 를 참조하십시오.
-
프라이빗 DNS를 사용하는 노드의 경우
inventory.yml
:에 다음 행을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible_ssh_common_args: <your ssh ProxyCommand setting>
ansible_ssh_common_args: <your ssh ProxyCommand setting>
이렇게 하면 proxy 명령을 사용하여 로컬 DNS 노드를 프라이빗 노드에 연결하도록
install-receptor.yml
플레이북에 지시합니다.- 속성이 구성된 경우 세부 정보 페이지가 열립니다. 클릭합니다. 생성된 인스턴스의
- 계속하려면 파일을 저장합니다.
설치 번들을 실행하여 원격 노드를 설정하고
ansible-playbook
을 실행하려면ansible.receptor
컬렉션을 설치해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-galaxy collection install ansible.receptor
ansible-galaxy collection install ansible.receptor
또는
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-galaxy install -r requirements.yml
ansible-galaxy install -r requirements.yml
-
requirements.yml
파일에서 수신기 컬렉션 종속성을 설치하면 지정된 수신기 버전을 일관되게 검색합니다. 또한 나중에 필요할 수 있는 다른 컬렉션 종속성도 검색합니다. - 플레이북이 실행될 모든 노드에 수신기 컬렉션을 설치합니다. 그렇지 않으면 오류가 발생합니다.
-
receiver
_listener_port
가 정의된 경우 시스템은 인바운드 TCP 연결을 설정하기 위해 사용 가능한 오픈 포트(예: 27199)도 필요합니다. 다음 명령을 실행하여 수신기 통신을 위해 포트 27199를 엽니다(방화 방화벽에 포트 27199가 열려 있는지 확인).Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
참고일부 서버가 수신기 포트에서 수신 대기하지 않는 경우일 수 있습니다(기본값은 27199임).
A, B, C, D 노드가 있는 컨트롤 플레인이 있다고 가정합니다.
RPM 설치 프로그램은 최소 권한 있는 접근 방식을 사용하여 컨트롤 플레인 노드 간에 강력하게 연결된 피어링을 생성하고 필요한 노드에서만 tcp 리스너를 엽니다. 모든 수용체 연결은 양방향이므로 연결이 생성되면 수신기가 두 방향으로 통신할 수 있습니다.
- 자동화 메시를 업데이트할 머신에서 다음 플레이북을 실행합니다.
ansible-playbook -i inventory.yml install_receptor.yml
ansible-playbook -i inventory.yml install_receptor.yml
+
이 플레이북에는 OpenSSL이 필요합니다. 다음 명령을 실행하여 설치할 수 있습니다.
openssl -v
openssl -v
이 값이 반환되면 버전 OpenSSL이 설치됩니다. 그렇지 않으면 다음을 사용하여 OpenSSL을 설치해야 합니다.
sudo dnf install -y openssl
sudo dnf install -y openssl
+ 이 플레이북이 실행되면 자동화 메시가 구성됩니다.

다음은 세 개의 컨트롤러 노드에 설정된 피어링입니다.
컨트롤러 노드 A - Cryostat 컨트롤러 노드 B
컨트롤러 노드 A - Cryostat 컨트롤러 노드 C
컨트롤러 노드 B - Cryostat 컨트롤러 노드 C
설정을 설정하여 리스너를 강제 수행할 수 있습니다.
receptor_listener=True
그러나 연결 컨트롤러 B - Cryostat A는 해당 연결이 이미 존재하므로 거부될 수 있습니다.
즉, 컨트롤러 A에 컨트롤러 A에 연결하지 않고 다른 노드에 대한 연결을 생성하고 다음 명령은 컨트롤러 A에서 아무것도 반환하지 않습니다.
[root@controller1 ~]# ss -ntlp | grep 27199 [root@controller1 ~]#
메시에서 인스턴스를 제거하려면 인스턴스 제거를 참조하십시오. r