16.4. 단일 노드 OpenShift 클러스터 배포
16.4.1. 관리형 단일 노드 OpenShift를 위한 이미지 기반 배포 정보
이미지 기반 설치를 사용하여 단일 노드 OpenShift로 사전 설치된 호스트가 원격 사이트에 도착하면 기술자는 몇 분 내에 호스트를 쉽게 재구성하고 배포할 수 있습니다.
hub-and-spoke 아키텍처가 있는 클러스터의 경우 사전 설치된 호스트 배포를 완료하려면 먼저 각 호스트에 대한 허브 클러스터에 사이트별 구성 리소스를 정의해야 합니다. 이러한 리소스에는 베어 메탈 호스트의 속성, 인증 세부 정보 및 기타 배포 및 네트워킹 정보와 같은 구성 정보가 포함됩니다.
IBI(Image Based Install) Operator는 이러한 리소스에서 구성 ISO를 생성한 다음 구성 ISO가 연결된 호스트를 부팅합니다. 호스트는 구성 ISO를 마운트하고 재구성 프로세스를 실행합니다. 재구성이 완료되면 단일 노드 OpenShift 클러스터가 준비됩니다.
각 베어 메탈 호스트에 대해 별도의 구성 리소스를 생성해야 합니다.
hub-and-spoke 아키텍처가 있는 클러스터에 사전 설치된 호스트를 배포하려면 다음 고급 단계를 참조하십시오.
- hub 클러스터에 IBI Operator를 설치합니다.
- 각 호스트에 대한 허브 클러스터에 사이트별 구성 리소스를 생성합니다.
- IBI Operator는 이러한 리소스에서 구성 ISO를 생성하고 구성 ISO가 연결된 대상 호스트를 부팅합니다.
- 호스트는 구성 ISO를 마운트하고 재구성 프로세스를 실행합니다. 재구성이 완료되면 단일 노드 OpenShift 클러스터가 준비됩니다.
또는 hub 클러스터를 사용하지 않고 클러스터에 사전 설치된 호스트를 수동으로 배포할 수 있습니다. ImageBasedConfig
리소스 및 설치 매니페스트를 정의하고 openshift-install
설치 프로그램에 입력으로 제공해야 합니다. 자세한 내용은 " openshift-install
프로그램을 사용하여 단일 노드 OpenShift 클러스터 배포"를 참조하십시오.
16.4.1.1. Image Based Install Operator 설치
IBI(Image Based Install) Operator는 베어 메탈 호스트에 사전 설치된 단일 노드 OpenShift에 대한 이미지 기반 배포 워크플로의 일부입니다.
IBI Operator는 MCE 버전 2.7의 Kubernetes Operator용 멀티 클러스터 엔진의 일부입니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 로그인했습니다. - RHACM(Red Hat Advanced Cluster Management) 허브 클러스터를 배포했거나 Kubernetes Operator에 다중 클러스터 엔진을 배포했습니다.
- "이미지 기반 설치를 위한 소프트웨어 사전 요구 사항" 섹션의 필수 버전의 소프트웨어 구성 요소를 검토했습니다.
프로세스
다음 명령을 실행하여
MultiClusterEngine
리소스의image-based-install-operator
구성 요소에 대해활성화된
사양을true
로 설정합니다.$ oc patch multiclusterengines.multicluster.openshift.io multiclusterengine --type json \ --patch '[{"op": "add", "path":"/spec/overrides/components/-", "value": {"name":"image-based-install-operator","enabled": true}}]'
검증
다음 명령을 실행하여 Image Based Install Operator Pod가 실행 중인지 확인합니다.
$ oc get pods -A | grep image-based
출력 예
multicluster-engine image-based-install-operator-57fb8sc423-bxdj8 2/2 Running 0 5m
16.4.1.2. IBI Operator를 사용하여 관리형 단일 노드 OpenShift 클러스터 배포
hub 클러스터에 사이트별 구성 리소스를 생성하여 사전 설치된 호스트의 이미지 기반 배포를 시작합니다.
허브 클러스터에서 이러한 구성 리소스를 생성할 때 IBI(Image Based Install) Operator는 구성 ISO를 생성하여 대상 호스트에 연결하여 사이트별 구성 프로세스를 시작합니다. 구성 프로세스가 완료되면 단일 노드 OpenShift 클러스터가 준비됩니다.
hub 클러스터에서 구성해야 하는 구성 리소스에 대한 자세한 내용은 "사전 설치된 호스트 배포를 위한 클러스터 구성 리소스"를 참조하십시오.
사전 요구 사항
- 이미지 기반 설치를 사용하여 단일 노드 OpenShift로 호스트를 사전 설치했습니다.
-
cluster-admin
권한이 있는 사용자로 로그인했습니다. - RHACM(Red Hat Advanced Cluster Management) 허브 클러스터를 배포했거나 MC(Kubernetes Operator)용 다중 클러스터 엔진을 배포했습니다.
- hub 클러스터에 IBI Operator가 설치되어 있어야 합니다.
- 가져오기 요청을 인증하는 풀 시크릿을 생성했습니다. 자세한 내용은 "이미지 풀 시크릿 사용"을 참조하십시오.
프로세스
다음 명령을 실행하여
ibi-ns
네임스페이스를 생성합니다.$ oc create namespace ibi-ns
이미지 레지스트리에 대한
Secret
리소스를 생성합니다.이미지 레지스트리에 대한
Secret
리소스를 정의하는 YAML 파일을 생성합니다.secret-image-registry.yaml
파일 예apiVersion: v1 kind: Secret metadata: name: ibi-image-pull-secret namespace: ibi-ns stringData: .dockerconfigjson: <base64-docker-auth-code> 1 type: kubernetes.io/dockerconfigjson
- 1
- base64로 인코딩된 인증 정보 세부 정보를 제공해야 합니다. 이미지 가져오기 보안 사용에 대한 자세한 내용은 "추가 리소스" 섹션을 참조하십시오.
다음 명령을 실행하여 이미지 레지스트리에 대한
Secret
리소스를 생성합니다.$ oc create -f secret-image-registry.yaml
선택 사항: 호스트에 대한 정적 네트워킹을 구성합니다.
nmstate
형식으로 정적 네트워크 구성을 포함하는Secret
리소스를 생성합니다.host-network-config-secret.yaml
파일 예apiVersion: v1 kind: Secret metadata: name: host-network-config-secret 1 namespace: ibi-ns type: Opaque stringData: nmstate: | 2 interfaces: - name: ens1f0 3 type: ethernet state: up ipv4: enabled: true address: - ip: 192.168.200.25 prefix-length: 24 dhcp: false 4 ipv6: enabled: false dns-resolver: config: server: - 192.168.15.47 5 - 192.168.15.48 routes: config: 6 - destination: 0.0.0.0/0 metric: 150 next-hop-address: 192.168.200.254 next-hop-interface: ens1f0 table-id: 254
- 1
Secret
리소스의 이름을 지정합니다.- 2
nmstate
형식으로 정적 네트워크 구성을 정의합니다.- 3
- 호스트의 인터페이스 이름을 지정합니다. 인터페이스 이름은 운영 체제에 표시된 대로 실제 NIC 이름과 일치해야 합니다. NIC 일치에 MAC 주소를 사용하려면
ID
필드를mac-address
로 설정합니다. - 4
nmstate
가 인터페이스에 고정 IP 주소를 할당하도록 하려면dhcp: false
를 지정해야 합니다.- 5
- 시스템이 도메인 이름을 확인하는 데 사용할 하나 이상의 DNS 서버를 지정합니다.
- 6
- 이 예에서 기본 경로는
ens1f0
인터페이스를 통해 다음 홉 IP 주소192.168.200.254
로 구성됩니다.
BareMetalHost
및Secret
리소스를 생성합니다.BareMetalHost
및Secret
리소스를 정의하는 YAML 파일을 생성합니다.ibi-bmh.yaml
파일 예apiVersion: metal3.io/v1alpha1 kind: BareMetalHost metadata: name: ibi-bmh 1 namespace: ibi-ns spec: online: false 2 bootMACAddress: 00:a5:12:55:62:64 3 bmc: address: redfish-virtualmedia+http://192.168.111.1:8000/redfish/v1/Systems/8a5babac-94d0-4c20-b282-50dc3a0a32b5 4 credentialsName: ibi-bmh-bmc-secret 5 preprovisioningNetworkDataName: host-network-config-secret 6 automatedCleaningMode: disabled 7 externallyProvisioned: true 8 --- apiVersion: v1 kind: Secret metadata: name: ibi-bmh-secret 9 namespace: ibi-ns type: Opaque data: username: <user_name> 10 password: <password> 11
- 1
BareMetalHost
리소스의 이름을 지정합니다.- 2
- 호스트가 온라인 상태인지 여부를 지정합니다.
- 3
- 호스트 부팅 MAC 주소를 지정합니다.
- 4
- BMC 주소를 지정합니다. 가상 미디어 네트워킹 부팅을 지원하는 베어 메탈 호스트 드라이버(예: redfish-virtualmedia 및 idrac-virtualmedia)만 사용할 수 있습니다.
- 5
- 베어 메탈 호스트
Secret
리소스의 이름을 지정합니다. - 6
- 선택 사항: 호스트에 정적 네트워크 구성이 필요한 경우 구성이 포함된
Secret
리소스의 이름을 지정합니다. - 7
- 프로비저닝 서비스에서 디스크 검사 중에 시드 이미지와 같은 사전 설치 아티팩트를 모두 삭제하지 못하도록
automatedCleaningMode:disabled
를 지정해야 합니다. - 8
- 구성 ISO 대신 호스트가 사전 설치된 디스크에서 부팅되도록 하려면 external
Provisioned: true
를 지정해야 합니다. - 9
Secret
리소스의 이름을 지정합니다.- 10
- 사용자 이름을 지정합니다.
- 11
- 암호를 지정합니다.
다음 명령을 실행하여
BareMetalHost
및Secret
리소스를 생성합니다.$ oc create -f ibi-bmh.yaml
ClusterImageSet
리소스를 생성합니다.ClusterImageSet
리소스를 정의하는 YAML 파일을 생성합니다.ibi-cluster-image-set.yaml
파일의 예apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: name: ibi-img-version-arch 1 spec: releaseImage: ibi.example.com:path/to/release/images:version-arch 2
다음 명령을 실행하여
ClusterImageSet
리소스를 생성합니다.$ oc apply -f ibi-cluster-image-set.yaml
ImageClusterInstall
리소스를 생성합니다.ImageClusterInstall
리소스를 정의하는 YAML 파일을 생성합니다.ibi-image-cluster-install.yaml
파일의 예apiVersion: extensions.hive.openshift.io/v1alpha1 kind: ImageClusterInstall metadata: name: ibi-image-install 1 namespace: ibi-ns spec: bareMetalHostRef: name: ibi-bmh 2 namespace: ibi-ns clusterDeploymentRef: name: ibi-cluster-deployment 3 hostname: ibi-host 4 imageSetRef: name: ibi-img-version-arch 5 machineNetwork: 10.0.0.0/24 6 proxy: 7 httpProxy: "http://proxy.example.com:8080" #httpsProxy: "http://proxy.example.com:8080" #noProxy: "no_proxy.example.com"
- 1
ImageClusterInstall
리소스의 이름을 지정합니다.- 2
- 이미지 기반 설치를 대상으로 할
BareMetalHost
리소스를 지정합니다. - 3
- 대상 호스트의 이미지 기반 설치에 사용할
ClusterDeployment
리소스의 이름을 지정합니다. - 4
- 클러스터의 호스트 이름을 지정합니다.
- 5
- 배포에 사용할 컨테이너 릴리스 이미지를 정의하는 데 사용한
ClusterImageSet
리소스의 이름을 지정합니다. - 6
- 외부 네트워크의 공용 CIDR(Classless Inter-Domain Routing)을 지정합니다.
- 7
- 선택 사항: 클러스터 배포에 사용할 프록시를 지정합니다.
중요클러스터 배포에 프록시 구성이 필요한 경우 다음을 수행해야 합니다.
- 프록시 구성을 제공하는 시드 클러스터에서 시드 이미지를 생성합니다. 프록시 구성이 일치하지 않아도 됩니다.
-
설치 매니페스트에서
machineNetwork
필드를 구성합니다.
다음 명령을 실행하여
ImageClusterInstall
리소스를 생성합니다.$ oc create -f ibi-image-cluster-install.yaml
ClusterDeployment
리소스를 생성합니다.ClusterDeployment
리소스를 정의하는 YAML 파일을 생성합니다.ibi-cluster-deployment.yaml
파일의 예apiVersion: hive.openshift.io/v1 kind: ClusterDeployment metadata: name: ibi-cluster-deployment 1 namespace: ibi-ns 2 spec: baseDomain: example.com 3 clusterInstallRef: group: extensions.hive.openshift.io kind: ImageClusterInstall name: ibi-image-install 4 version: v1alpha1 clusterName: ibi-cluster 5 platform: none: {} pullSecretRef: name: ibi-image-pull-secret 6
다음 명령을 실행하여
ClusterDeployment
리소스를 생성합니다.$ oc apply -f ibi-cluster-deployment.yaml
ManagedCluster
리소스를 생성합니다.ManagedCluster
리소스를 정의하는 YAML 파일을 생성합니다.ibi-managed.yaml
파일 예apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: sno-ibi 1 spec: hubAcceptsClient: true 2
다음 명령을 실행하여
ManagedCluster
리소스를 생성합니다.$ oc apply -f ibi-managed.yaml
검증
다음 명령을 실행하여 허브 클러스터에서
ImageClusterInstall
의 상태를 확인하여 대상 호스트 설치의 진행 상황을 모니터링합니다.$ oc get imageclusterinstall
출력 예
NAME REQUIREMENTSMET COMPLETED BAREMETALHOSTREF target-0 HostValidationSucceeded ClusterInstallationSucceeded ibi-bmh
주의ImageClusterInstall
리소스가 삭제되면 IBI Operator에서BareMetalHost
리소스를 다시 연결하고 머신을 재부팅합니다.설치가 완료되면 다음 명령을 실행하여
kubeconfig
시크릿을 검색하여 관리 클러스터에 로그인할 수 있습니다.$ oc extract secret/<cluster_name>-admin-kubeconfig -n <cluster_namespace> --to - > <directory>/<cluster_name>-kubeconfig
-
<CLUSTER_NAME
>은 클러스터의 이름입니다. -
<cluster_namespace
>는 클러스터의 네임스페이스입니다. -
<directory
>는 파일을 생성할 디렉터리입니다.
-
16.4.1.2.1. 사전 설치된 호스트 배포를 위한 클러스터 구성 리소스
원격 사이트에서 사전 설치된 호스트에 대한 배포를 완료하려면 각 베어 메탈 호스트에 대해 hub 클러스터에서 다음 site-specifc 클러스터 구성 리소스를 구성해야 합니다.
리소스 | 설명 |
---|---|
| 관리형 단일 노드 OpenShift 클러스터의 네임스페이스입니다. |
| 물리적 호스트 및 프로비저닝 및 하드웨어 구성과 같은 해당 속성을 설명합니다. |
베어 메탈 호스트의 | 호스트 BMC의 자격 증명. |
베어 메탈 호스트 정적 네트워크 구성의 | 선택 사항: 대상 호스트에 대한 정적 네트워크 구성을 설명합니다. |
이미지 레지스트리의 |
이미지 레지스트리의 인증 정보입니다. 이미지 레지스트리의 시크릿은 |
| 베어 메탈 호스트, 배포 및 이미지 세트 리소스를 참조합니다. |
| 클러스터에 사용할 릴리스 이미지를 설명합니다. |
| 네트워킹, 인증 및 플랫폼별 설정을 설명합니다. |
| RHACM(Red Hat Advanced Cluster Management)에서 등록하고 관리할 수 있는 클러스터 세부 정보에 대해 설명합니다. |
| 선택 사항: 클러스터 서비스에 대한 신뢰할 수 있는 통신을 보장하기 위해 호스트에 대한 신뢰할 수 있는 인증서 번들 추가와 같은 클러스터 배포에 대한 추가 구성을 설명합니다. |
16.4.1.2.2. ImageClusterInstall 리소스 API 사양
다음 콘텐츠는 ImageClusterInstall
리소스의 API 사양을 설명합니다. 이 리소스는 Image Based Install Operator의 끝점입니다.
사양 | 유형 | 설명 |
---|---|---|
|
|
배포에 대한 릴리스 이미지를 정의하는 |
|
| 클러스터의 호스트 이름을 지정합니다. |
|
| 대상 호스트에 대한 SSH 액세스를 제공할 SSH 키를 지정합니다. |
사양 | 유형 | 설명 |
---|---|---|
|
|
대상 호스트의 이미지 기반 설치에 사용할 |
|
|
배포가 완료되면 이 사양은 클러스터에 로그인하기 위한 |
|
| 릴리스 이미지 콘텐츠의 소스 또는 리포지토리를 지정합니다. 예를 들면 다음과 같습니다. imageDigestSources: - mirrors: - "registry.example.com:5000/ocp4/openshift4" source: "quay.io/openshift-release-dev/ocp-release" |
|
|
대상 클러스터에 적용할 추가 매니페스트를 포함하는 |
|
|
클러스터 배포에 사용할 |
|
| 외부 네트워크의 공용 CIDR(Classless Inter-Domain Routing)을 지정합니다. |
|
| 클러스터의 프록시 설정을 지정합니다. 예를 들면 다음과 같습니다. proxy: httpProxy: "http://proxy.example.com:8080" httpsProxy: "http://proxy.example.com:8080" noProxy: "no_proxy.example.com" |
|
|
호스트에 대한 신뢰할 수 있는 인증서의 새 번들을 포함하는 |
16.4.1.3. 추가 매니페스트를 위한 ConfigMap 리소스
필요한 경우 ConfigMap
리소스를 생성하여 관리형 단일 노드 OpenShift 클러스터에 대한 이미지 기반 배포에서 추가 매니페스트를 정의할 수 있습니다.
ConfigMap
리소스를 생성한 후 ImageClusterInstall
리소스에서 참조합니다. 배포하는 동안 IBI Operator에는 배포에 추가 매니페스트가 포함됩니다.
16.4.1.3.1. 이미지 기반 배포에 추가 매니페스트를 추가하는 ConfigMap 리소스 생성
ConfigMap
리소스를 사용하여 단일 노드 OpenShift 클러스터의 이미지 기반 배포에 매니페스트를 추가할 수 있습니다.
다음 예제에서는 SR-IOV(Single-root I/O Virtualization) 네트워크를 배포에 추가합니다.
사전 요구 사항
- 이미지 기반 설치를 사용하여 단일 노드 OpenShift로 호스트를 사전 설치했습니다.
-
cluster-admin
권한이 있는 사용자로 로그인했습니다.
프로세스
SriovNetworkNodePolicy
및SriovNetwork
리소스를 생성합니다.리소스를 정의하는 YAML 파일을 생성합니다.
sriov-extra-manifest.yaml
파일의 예apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetworkNodePolicy metadata: name: "example-sriov-node-policy" namespace: openshift-sriov-network-operator spec: deviceType: vfio-pci isRdma: false nicSelector: pfNames: [ens1f0] nodeSelector: node-role.kubernetes.io/master: "" mtu: 1500 numVfs: 8 priority: 99 resourceName: example-sriov-node-policy --- apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetwork metadata: name: "example-sriov-network" namespace: openshift-sriov-network-operator spec: ipam: |- { } linkState: auto networkNamespace: sriov-namespace resourceName: example-sriov-node-policy spoofChk: "on" trust: "off"
다음 명령을 실행하여
ConfigMap
리소스를 생성합니다.$ oc create configmap sr-iov-extra-manifest --from-file=sriov-extra-manifest.yaml -n ibi-ns 1
- 1
ImageClusterInstall
리소스가 있는 네임스페이스를 지정합니다.
출력 예
configmap/sr-iov-extra-manifest created
ImageClusterInstall
리소스의spec.extraManifestsRefs
필드에서ConfigMap
리소스를 참조합니다.#... spec: extraManifestsRefs: - name: sr-iov-extra-manifest #...
16.4.1.3.2. 이미지 기반 배포에 CA 번들을 추가하는 ConfigMap 리소스 생성
ConfigMap
리소스를 사용하여 호스트에 CA(인증 기관) 번들을 추가하여 클러스터 서비스에 대한 신뢰할 수 있는 통신을 보장할 수 있습니다.
ConfigMap
리소스를 생성한 후 ImageClusterInstall
리소스의 spec.caBundleRef
필드에서 참조합니다.
사전 요구 사항
- 이미지 기반 설치를 사용하여 단일 노드 OpenShift로 호스트를 사전 설치했습니다.
-
cluster-admin
권한이 있는 사용자로 로그인했습니다.
프로세스
tls-ca-bundle.pem
이라는 CA 번들 파일을 생성합니다.tls-ca-bundle.pem
파일의 예-----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAKmjYKJbIyz3MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV ...Custom CA certificate bundle... 4WPl0Qb27Sb1xZyAsy1ww6MYb98EovazUSfjYr2EVF6ThcAPu4/sMxUV7He2J6Jd cA8SMRwpUbz3LXY= -----END CERTIFICATE-----
다음 명령을 실행하여
ConfigMap
오브젝트를 생성합니다.$ oc create configmap custom-ca --from-file=tls-ca-bundle.pem -n ibi-ns
-
custom-ca
는ConfigMap
리소스의 이름을 지정합니다. -
tls-ca-bundle.pem
은ConfigMap
리소스의data
항목에 대한 키를 정의합니다.tls-ca-bundle.pem
키를 사용하여데이터
항목을 포함해야 합니다. IBI-ns
는ImageClusterInstall
리소스가 있는 네임스페이스를 지정합니다.출력 예
configmap/custom-ca created
-
ImageClusterInstall
리소스의spec.caBundleRef
필드에서ConfigMap
리소스를 참조합니다.#... spec: caBundleRef: name: custom-ca #...
16.4.2. 단일 노드 OpenShift를 위한 이미지 기반 배포 정보
openshift-install
프로그램을 사용하여 구성 ISO를 수동으로 생성할 수 있습니다. 사전 설치된 대상 호스트에 구성 ISO를 연결하여 배포를 완료합니다.
16.4.2.1. openshift-install 프로그램을 사용하여 단일 노드 OpenShift 클러스터 배포
openshift-install
프로그램을 사용하여 이미지 기반 설치와 함께 사전 설치된 호스트를 구성하고 배포할 수 있습니다. 사이트별 세부 정보를 사용하여 대상 호스트를 구성하려면 다음 리소스를 생성해야 합니다.
-
install-config.yaml
설치 매니페스트 -
image-based-config.yaml
매니페스트
openshift-install
프로그램은 이러한 리소스를 사용하여 사전 설치된 대상 호스트에 연결하는 구성 ISO를 생성하여 배포를 완료합니다.
image-based-config.yaml
매니페스트의 사양에 대한 자세한 내용은 "이미지 기반-config.yaml 매니페스트에 대한 참조 사양"을 참조하십시오.
사전 요구 사항
- 이미지 기반 설치를 사용하여 단일 노드 OpenShift로 호스트를 사전 설치했습니다.
-
최신 버전의
openshift-install
프로그램을 다운로드했습니다. - 가져오기 요청을 인증하는 풀 시크릿을 생성했습니다. 자세한 내용은 "이미지 풀 시크릿 사용"을 참조하십시오.
프로세스
다음을 실행하여 작업 디렉터리를 생성합니다.
$ mkdir ibi-config-iso-workdir 1
- 1
ibi-config-iso-workdir
을 작업 디렉터리의 이름으로 바꿉니다.
설치 매니페스트를 생성합니다.
install-config
매니페스트를 정의하는 YAML 파일을 생성합니다.install-config.yaml
파일 예apiVersion: v1 metadata: name: sno-cluster-name baseDomain: host.example.com compute: - architecture: amd64 hyperthreading: Enabled name: worker replicas: 0 controlPlane: architecture: amd64 hyperthreading: Enabled name: master replicas: 1 networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 192.168.200.0/24 networkType: OVNKubernetes serviceNetwork: - 172.30.0.0/16 platform: none: {} fips: false cpuPartitioningMode: "AllNodes" pullSecret: '{"auths":{"<your_pull_secret>"}}}' sshKey: 'ssh-rsa <your_ssh_pub_key>'
중요클러스터 배포에 프록시 구성이 필요한 경우 다음을 수행해야 합니다.
- 프록시 구성을 제공하는 시드 클러스터에서 시드 이미지를 생성합니다. 프록시 구성이 일치하지 않아도 됩니다.
- 설치 매니페스트에서 machineNetwork 필드를 구성합니다.
- 파일을 작업 디렉터리에 저장합니다.
선택 사항: 다음 명령을 실행하여 작업 디렉터리에 구성 템플릿을 생성합니다.
$ openshift-install image-based create config-template --dir ibi-config-iso-workdir/
출력 예
INFO Config-Template created in: ibi-config-iso-workdir
이 명령은 작업 디렉터리에
image-based-config.yaml
구성 템플릿을 생성합니다.# # Note: This is a sample ImageBasedConfig file showing # which fields are available to aid you in creating your # own image-based-config.yaml file. # apiVersion: v1beta1 kind: ImageBasedConfig metadata: name: example-image-based-config additionalNTPSources: - 0.rhel.pool.ntp.org - 1.rhel.pool.ntp.org hostname: change-to-hostname releaseRegistry: quay.io # networkConfig contains the network configuration for the host in NMState format. # See https://nmstate.io/examples.html for examples. networkConfig: interfaces: - name: eth0 type: ethernet state: up mac-address: 00:00:00:00:00:00 ipv4: enabled: true address: - ip: 192.168.122.2 prefix-length: 23 dhcp: false
구성 파일을 편집합니다.
image-based-config.yaml
파일의 예# # Note: This is a sample ImageBasedConfig file showing # which fields are available to aid you in creating your # own image-based-config.yaml file. # apiVersion: v1beta1 kind: ImageBasedConfig metadata: name: sno-cluster-name additionalNTPSources: - 0.rhel.pool.ntp.org - 1.rhel.pool.ntp.org hostname: host.example.com releaseRegistry: quay.io # networkConfig contains the network configuration for the host in NMState format. # See https://nmstate.io/examples.html for examples. networkConfig: interfaces: - name: ens1f0 type: ethernet state: up ipv4: enabled: true dhcp: false auto-dns: false address: - ip: 192.168.200.25 prefix-length: 24 ipv6: enabled: false dns-resolver: config: server: - 192.168.15.47 - 192.168.15.48 routes: config: - destination: 0.0.0.0/0 metric: 150 next-hop-address: 192.168.200.254 next-hop-interface: ens1f0
다음 명령을 실행하여 작업 디렉터리에 구성 ISO를 생성합니다.
$ openshift-install image-based create config-image --dir ibi-config-iso-workdir/
출력 예
INFO Adding NMConnection file <ens1f0.nmconnection> INFO Consuming Install Config from target directory INFO Consuming Image-based Config ISO configuration from target directory INFO Config-Image created in: ibi-config-iso-workdir/auth
작업 디렉터리의 출력을 확인합니다.
출력 예
ibi-config-iso-workdir/ ├── auth │ ├── kubeadmin-password │ └── kubeconfig └── imagebasedconfig.iso
-
기본 방법을 사용하여 사전 설치된 호스트에
imagebasedconfig.iso
를 연결하고 호스트를 다시 시작하여 구성 프로세스를 완료하고 클러스터를 배포합니다.
검증
호스트 구성 프로세스가 완료되면 클러스터에 액세스하여 상태를 확인합니다.
다음 명령을 실행하여
kubeconfig
환경 변수를 kubeconfig 파일로 내보냅니다.$ export KUBECONFIG=ibi-config-iso-workdir/auth/kubeconfig
다음 명령을 실행하여 클러스터가 응답하는지 확인합니다.
$ oc get nodes
출력 예
NAME STATUS ROLES AGE VERSION node/sno-cluster-name.host.example.com Ready control-plane,master 5h15m v1.30.3
16.4.2.1.1. image-based-config.yaml 매니페스트에 대한 참조 사양
다음 내용은 image-based-config.yaml
매니페스트의 사양을 설명합니다.
openshift-install
프로그램은 image-based-config.yaml
매니페스트를 사용하여 단일 노드 OpenShift의 이미지 기반 배포용 사이트별 구성 ISO를 생성합니다.
사양 | 유형 | 설명 |
---|---|---|
|
| 단일 노드 OpenShift 클러스터의 노드 이름을 정의합니다. |
사양 | 유형 | 설명 |
---|---|---|
|
| 호스트에 대한 네트워킹 구성을 지정합니다. 예를 들면 다음과 같습니다. networkConfig: interfaces: - name: ens1f0 type: ethernet state: up ...
정적 네트워킹이 필요한 경우 라이브 설치 ISO를 생성하는 호스트에 중요 인터페이스 이름은 운영 체제에 표시된 대로 실제 NIC 이름과 일치해야 합니다. |
|
| 모든 클러스터 호스트의 NTP 소스 목록을 지정합니다. 이러한 NTP 소스는 클러스터의 기존 NTP 소스에 추가됩니다. NTP 소스에 호스트 이름 또는 IP 주소를 사용할 수 있습니다. |
|
| seed 클러스터의 릴리스 이미지에 사용한 컨테이너 이미지 레지스트리를 지정합니다. |
|
| 단일 노드 OpenShift 노드의 사용자 정의 노드 레이블을 지정합니다. 예를 들면 다음과 같습니다. nodeLabels: node-role.kubernetes.io/edge: true environment: production |
16.4.2.2. 추가 매니페스트를 위한 리소스 구성
선택적으로 단일 노드 OpenShift 클러스터의 이미지 기반 배포에서 추가 리소스를 정의할 수 있습니다.
install-config.yaml
및 image-based-config.yaml
매니페스트가 있는 동일한 작업 디렉터리의 extra-manifests
폴더에 추가 리소스를 생성합니다.
16.4.2.2.1. extra-manifests 폴더에 리소스 생성
작업 디렉터리의 extra-manifests
폴더에 리소스를 생성하여 단일 노드 OpenShift 클러스터의 이미지 기반 배포에 추가 매니페스트를 추가할 수 있습니다.
다음 예제에서는 SR-IOV(Single-root I/O Virtualization) 네트워크를 배포에 추가합니다.
사전 요구 사항
-
install-config.yaml
및image-based-config.yaml
매니페스트를 사용하여 작업 디렉터리를 생성했습니다.
프로세스
다음 명령을 실행하여 작업 디렉터리로 이동하고
추가-manifests 폴더를
생성합니다.$ mkdir extra-manifests
extra-manifests
폴더에SriovNetwork
NodePolicy리소스를 정의하는 YAML 파일을 생성합니다.
sriov-extra-manifest.yaml
파일의 예apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetworkNodePolicy metadata: name: "example-sriov-node-policy" namespace: openshift-sriov-network-operator spec: deviceType: vfio-pci isRdma: false nicSelector: pfNames: [ens1f0] nodeSelector: node-role.kubernetes.io/master: "" mtu: 1500 numVfs: 8 priority: 99 resourceName: example-sriov-node-policy --- apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetwork metadata: name: "example-sriov-network" namespace: openshift-sriov-network-operator spec: ipam: |- { } linkState: auto networkNamespace: sriov-namespace resourceName: example-sriov-node-policy spoofChk: "on" trust: "off"
검증
구성 ISO를 생성할 때 작업 디렉터리의
.openshift_install_state.json
파일에서 추가 매니페스트에 대한 참조를 볼 수 있습니다."*configimage.ExtraManifests": { "FileList": [ { "Filename": "extra-manifests/sriov-extra-manifest.yaml", "Data": "YXBFDFFD..." } ] }