22.3. OpenShift Ansible 플레이북을 사용하여 OpenShift Container Platform 인스턴스 프로비저닝
배포 호스트의 생성 및 구성이 완료되면 Ansible을 사용하여 OpenShift Container Platform 배포를 위한 환경을 준비합니다. 다음 하위 섹션에서 Ansible이 구성되고 특정 YAML 파일이 OpenStack 배포 시 OpenShift Container Platform을 성공적으로 수행하도록 수정됩니다.
22.3.1. 프로비저닝을 위한 인벤토리 준비 링크 복사링크가 클립보드에 복사되었습니다!
이전 단계를 통해 openshift-ansible
패키지를 설치하면 배포 호스트의 cloud
디렉터리가 있습니다.
-user 홈 디렉터리에 복사할 sample-
inventory
배포 호스트에서
cp -r /usr/share/ansible/openshift-ansible/playbooks/openstack/sample-inventory/ ~/inventory
$ cp -r /usr/share/ansible/openshift-ansible/playbooks/openstack/sample-inventory/ ~/inventory
이 인벤토리 디렉터리 내에서 all.yml 파일에는 RHOCP 인스턴스를 성공적으로 프로비저닝하기 위해 설정해야 하는 다양한 매개 변수가 모두 포함되어 있습니다. OSEv3.yml 파일에는 all.yml 파일에 필요한 몇 가지 참조와 사용자 지정할 수 있는 모든 사용 가능한 OpenShift Container Platform 클러스터 매개변수가 포함되어 있습니다.
22.3.1.1. OpenShiftSDN All YAML file 링크 복사링크가 클립보드에 복사되었습니다!
all.yml 파일에는 특정 요구 사항에 맞게 수정할 수 있는 많은 옵션이 있습니다. 이 파일에서 수집한 정보는 OpenShift Container Platform을 성공적으로 배포하는 데 필요한 인스턴스의 프로비저닝 부분에 사용됩니다. 이러한 내용을 신중하게 검토하는 것이 중요합니다. 이 문서에서는 All YAML 파일의 압축된 버전을 제공하고 성공적인 배포를 위해 설정해야 하는 가장 중요한 매개 변수에 중점을 둡니다.
외부 DNS 서버를 사용하므로 private 및 public 섹션에서는 DNS 서버가 OpenStack 환경에 있지 않으므로 DNS 서버의 공용 IP 주소를 사용합니다.
별표(*)로 묶은 위의 값은 OpenStack 환경과 DNS 서버를 기반으로 수정해야 합니다.
모든 YAML 파일의 DNS 부분을 올바르게 수정하려면 DNS 서버에 로그인하고 다음 명령을 수행하여 키 이름, 키 알고리즘 및 키 시크릿을 캡처합니다.
키 이름은 다를 수 있으며 위의 이름은 예시일 뿐입니다.
22.3.1.2. KuryrSDN 모든 YAML 파일 링크 복사링크가 클립보드에 복사되었습니다!
다음 all.yml 파일은 기본 OpenShiftSDN 대신 Kuryr SDN을 활성화합니다. 아래 예제는 축소된 버전이므로 기본 템플릿을 주의 깊게 검토하는 것이 중요합니다.
네임스페이스 격리를 사용하는 경우 Kuryr-controller는 각 네임스페이스에 대해 새 Neutron 네트워크 및 서브넷을 생성합니다.
Kuryr SDN이 활성화되면 네트워크 정책 및 노드 포트 서비스가 지원되지 않습니다.
Kuryr가 활성화되면 OpenStack Octavia Amphora VM을 통해 OpenShift Container Platform 서비스가 구현됩니다.
Octavia는 UDP 로드 밸런싱을 지원하지 않습니다. UDP 포트를 노출하는 서비스는 지원되지 않습니다.
22.3.1.2.1. 글로벌 네임 스페이스 액세스 구성 링크 복사링크가 클립보드에 복사되었습니다!
The kuryr_openstack_global_namespace
매개 변수에는 글로벌 네임스페이스를 정의하는 목록이 포함되어 있습니다. 기본적으로 default
및 openshift-monitoring
네임스페이스만 이 목록에 포함되어 있습니다.
OpenShift Container Platform 3.11의 이전 z-release에서 업그레이드하는 경우 글로벌 네임스페이스의 다른 네임스페이스에 대한 액세스는 보안 그룹 *-allow_from_default
에서 제어합니다.
remote_group_id 규칙은
글로벌 네임스페이스에서 다른 네임스페이스에 대한 액세스를 제어할 수 있지만 를 사용하면 확장 및 연결 문제가 발생할 수 있습니다. 이러한 문제를 방지하려면 *_allow_from
를 사용하지 마십시오.
_default에서 remote_
idip_prefix로 remote_
group_
명령줄에서 네트워크의
subnetCIDR
값을 검색합니다.oc get kuryrnets ns-default -o yaml | grep subnetCIDR
$ oc get kuryrnets ns-default -o yaml | grep subnetCIDR subnetCIDR: 10.11.13.0/24
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 범위에 대한 TCP 및 UDP 규칙을 생성합니다.
openstack security group rule create --remote-ip 10.11.13.0/24 --protocol tcp openshift-ansible-openshift.example.com-allow_from_default openstack security group rule create --remote-ip 10.11.13.0/24 --protocol udp openshift-ansible-openshift.example.com-allow_from_default
$ openstack security group rule create --remote-ip 10.11.13.0/24 --protocol tcp openshift-ansible-openshift.example.com-allow_from_default $ openstack security group rule create --remote-ip 10.11.13.0/24 --protocol udp openshift-ansible-openshift.example.com-allow_from_default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow remote_group_id
를 사용하는 보안 그룹 규칙을 제거합니다.openstack security group show *-allow_from_default | grep remote_group_id openstack security group rule delete REMOTE_GROUP_ID
$ openstack security group show *-allow_from_default | grep remote_group_id $ openstack security group rule delete REMOTE_GROUP_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Variable | 설명 |
---|---|
openshift_openstack_clusterid | 클러스터 ID 이름 |
openshift_openstack_public_dns_domain | 퍼블릭 DNS 도메인 이름 |
openshift_openstack_dns_nameservers | DNS 이름 서버의 IP |
openshift_openstack_public_hostname_suffix | 공용 및 개인용 DNS 레코드의 노드 호스트 이름에 접미사를 추가합니다. |
openshift_openstack_nsupdate_zone | OCP 인스턴스 IP를 사용하여 업데이트할 영역 |
openshift_openstack_keypair_name | OCP 인스턴스에 로그인하는 데 사용되는 키 쌍 이름 |
openshift_openstack_external_network_name | OpenStack 공용 네트워크 이름 |
openshift_openstack_default_image_name | OCP 인스턴스에 사용되는 OpenStack 이미지 |
openshift_openstack_num_masters | 배포할 마스터 노드 수 |
openshift_openstack_num_infra | 배포할 인프라 노드 수 |
openshift_openstack_num_cns | 배포할 컨테이너 네이티브 스토리지 노드 수 |
openshift_openstack_num_nodes | 배포할 애플리케이션 노드 수 |
openshift_openstack_master_flavor | 마스터 인스턴스에 사용되는 OpenStack 플레이버의 이름 |
openshift_openstack_default_flavor | 특정 플레이버가 지정되지 않은 경우 모든 인스턴스에 사용되는 Openstack 플레이버의 이름입니다. |
openshift_openstack_use_lbaas_load_balancer | Octavia 로드 밸런서를 활성화하는 부울 값 (Octavia를 설치해야 함) |
openshift_openstack_docker_volume_size | Docker 볼륨의 최소 크기(필수 변수) |
openshift_openstack_external_nsupdate_keys | 인스턴스 IP 주소로 DNS 업데이트 |
ansible_user | OpenShift Container Platform을 배포하는 데 사용되는 Ansible 사용자입니다. "openshift"는 필수 이름이므로 변경해서는 안 됩니다. |
openshift_openstack_disable_root | 루트 액세스를 비활성화하는 부울 값 |
openshift_openstack_user | 이 사용자로 생성된 OCP 인스턴스 |
openshift_openstack_node_subnet_name | 배포에 사용할 기존 OpenShift 서브넷의 이름입니다. 이는 배포 호스트에 사용되는 서브넷 이름과 같아야 합니다. |
openshift_openstack_router_name | 배포에 사용할 기존 OpenShift 라우터의 이름입니다. 이는 배포 호스트에 사용된 라우터 이름과 같아야 합니다. |
openshift_openstack_master_floating_ip |
기본값은 |
openshift_openstack_infra_floating_ip |
기본값은 |
openshift_openstack_compute_floating_ip |
기본값은 |
openshift_use_openshift_sdn |
openshift-sdn을 비활성화하려면 |
openshift_use_kuryr |
kuryr sdn을 사용하려면 |
use_trunk_ports |
트렁크 포트가 있는 OpenStack VM을 생성하려면 |
os_sdn_network_plugin_name |
SDN 동작 선택. kuryr에 대해 to |
openshift_node_proxy_mode |
Kuryr의 |
openshift_master_open_ports | Kuryr를 사용할 때 VM에서 열 포트 |
kuryr_openstack_public_net_id | Kuryr의 필요성. FIP가 가져오는 퍼블릭 OpenStack 네트워크의 ID |
openshift_kuryr_subnet_driver |
Kuryr 서브넷 드라이버. |
openshift_kuryr_sg_driver |
Kuryr 보안 그룹 드라이버. 네임스페이스 격리를 위한 |
kuryr_openstack_global_namespaces |
네임스페이스 격리에 사용할 글로벌 네임스페이스입니다. 기본값은 |
kuryr_openstack_ca | 클라우드의 CA 인증서 경로입니다. HTTPS를 통해 OpenStack 클라우드 엔드포인트에 액세스할 수 있는 경우 필요합니다. |
22.3.1.3. OSEv3 YAML 파일 링크 복사링크가 클립보드에 복사되었습니다!
OSEv3 YAML 파일은 OpenShift 설치와 관련된 다른 매개 변수 및 사용자 지정을 모두 지정합니다.
다음은 성공적인 배포에 필요한 모든 변수가 포함된 파일의 축소 버전입니다. 특정 OpenShift Container Platform 배포에 필요한 사용자 지정에 따라 추가 변수가 필요할 수 있습니다.
나열된 변수에 대한 자세한 내용은 OpenShift-Ansible 호스트 인벤토리 예제를 참조하십시오.