1.7.3.9.3. 명령줄을 사용하여 클러스터 생성
중앙 인프라 관리 구성 요소 내에서 지원 설치 관리자 기능을 사용하여 콘솔 없이 클러스터를 생성할 수도 있습니다. 이 절차를 완료하면 생성된 검색 이미지에서 호스트를 부팅할 수 있습니다. 절차 순서는 일반적으로 중요하지 않지만 필요한 순서가 있을 때 표시됩니다.
1.7.3.9.3.1. 네임스페이스 생성 링크 복사링크가 클립보드에 복사되었습니다!
리소스에 대한 네임스페이스가 필요합니다. 공유 네임스페이스의 모든 리소스를 유지하는 것이 더 편리합니다. 이 예제에서는 네임스페이스 이름에 sample-namespace 를 사용하지만 assisted-installer 를 제외한 모든 이름을 사용할 수 있습니다. 다음 파일을 생성하고 적용하여 네임스페이스를 생성합니다.
apiVersion: v1
kind: Namespace
metadata:
name: sample-namespace
1.7.3.9.3.2. 네임스페이스에 풀 시크릿 추가 링크 복사링크가 클립보드에 복사되었습니다!
다음 사용자 정의 리소스를 생성하고 적용하여 네임스페이스에 풀 시크릿 을 추가합니다.
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
name: <pull-secret>
namespace: sample-namespace
stringData:
.dockerconfigjson: 'your-pull-secret-json'
1.7.3.9.3.3. Generate a ClusterImageSet 링크 복사링크가 클립보드에 복사되었습니다!
다음 사용자 정의 리소스를 생성하고 적용하여 클러스터의 OpenShift Container Platform 버전을 지정하는 CustomImageSet 을 생성합니다.
apiVersion: hive.openshift.io/v1
kind: ClusterImageSet
metadata:
name: openshift-v4.15.0
spec:
releaseImage: quay.io/openshift-release-dev/ocp-release:4.15.0-rc.0-x86_64
참고: hub 클러스터와 다른 아키텍처가 있는 관리 클러스터를 설치하는 경우 다중 아키텍처 ClusterImageSet 을 생성해야 합니다. 자세한 내용은 다른 아키텍처에 클러스터를 배포할 릴리스 이미지 생성을 참조하십시오.
1.7.3.9.3.4. ClusterDeployment 사용자 정의 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
ClusterDeployment 사용자 정의 리소스 정의는 클러스터의 라이프사이클을 제어하는 API입니다. 클러스터 매개변수를 정의하는 spec.ClusterInstallRef 설정에서 AgentClusterInstall 사용자 정의 리소스를 참조합니다.
다음 예제를 기반으로 ClusterDeployment 사용자 정의 리소스를 생성하고 적용합니다.
apiVersion: hive.openshift.io/v1
kind: ClusterDeployment
metadata:
name: single-node
namespace: demo-worker4
spec:
baseDomain: hive.example.com
clusterInstallRef:
group: extensions.hive.openshift.io
kind: AgentClusterInstall
name: test-agent-cluster-install
version: v1beta1
clusterName: test-cluster
controlPlaneConfig:
servingCertificates: {}
platform:
agentBareMetal:
agentSelector:
matchLabels:
location: internal
pullSecretRef:
name: <pull-secret>
1.7.3.9.3.5. AgentClusterInstall 사용자 정의 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
AgentClusterInstall 사용자 정의 리소스에서 클러스터에 대한 많은 요구 사항을 지정할 수 있습니다. 예를 들어 클러스터 네트워크 설정, 플랫폼, 컨트롤 플레인 수 및 작업자 노드를 지정할 수 있습니다.
다음 예와 유사한 사용자 정의 리소스를 생성하고 추가합니다.
apiVersion: extensions.hive.openshift.io/v1beta1
kind: AgentClusterInstall
metadata:
name: test-agent-cluster-install
namespace: demo-worker4
spec:
platformType: BareMetal
clusterDeploymentRef:
name: single-node
imageSetRef:
name: openshift-v4.15.0
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 192.168.111.0/24
serviceNetwork:
- 172.30.0.0/16
provisionRequirements:
controlPlaneAgents: 1
sshPublicKey: ssh-rsa <your-public-key-here>
- 1
- 클러스터가 생성되는 환경의 플랫폼 유형을 지정합니다. 유효한 값은
BareMetal,None,VSphere,Nutanix또는External입니다. - 2
ClusterDeployment리소스에 사용한 것과 동일한 이름을 사용합니다.- 3
- Generate a
ClusterImageSet에서 생성한 ClusterImageSet을 사용합니다. - 4
- SSH 공개 키를 지정하여 호스트를 설치한 후 액세스할 수 있습니다.
1.7.3.9.3.6. 선택 사항: NMStateConfig 사용자 정의 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
NMStateConfig 사용자 지정 리소스는 정적 IP 주소와 같은 호스트 수준 네트워크 구성이 있는 경우에만 필요합니다. 이 사용자 정의 리소스를 포함하는 경우 InfraEnv 사용자 정의 리소스를 생성하기 전에 이 단계를 완료해야 합니다. NMStateConfig 는 InfraEnv 사용자 정의 리소스의 spec.nmStateConfigLabelSelector 값으로 참조합니다.
다음 예와 유사한 NMStateConfig 사용자 지정 리소스를 생성하고 적용합니다. 필요한 경우 값을 바꿉니다.
apiVersion: agent-install.openshift.io/v1beta1
kind: NMStateConfig
metadata:
name: <mynmstateconfig>
namespace: <demo-worker4>
labels:
demo-nmstate-label: <value>
spec:
config:
interfaces:
- name: eth0
type: ethernet
state: up
mac-address: 02:00:00:80:12:14
ipv4:
enabled: true
address:
- ip: 192.168.111.30
prefix-length: 24
dhcp: false
- name: eth1
type: ethernet
state: up
mac-address: 02:00:00:80:12:15
ipv4:
enabled: true
address:
- ip: 192.168.140.30
prefix-length: 24
dhcp: false
dns-resolver:
config:
server:
- 192.168.126.1
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.111.1
next-hop-interface: eth1
table-id: 254
- destination: 0.0.0.0/0
next-hop-address: 192.168.140.1
next-hop-interface: eth1
table-id: 254
interfaces:
- name: "eth0"
macAddress: "02:00:00:80:12:14"
- name: "eth1"
macAddress: "02:00:00:80:12:15"
참고: demo-nmstate-label 레이블 이름과 값을 InfraEnv 리소스 spec.nmStateConfigLabelSelector.matchLabels 필드에 포함해야 합니다.
1.7.3.9.3.7. InfraEnv 사용자 정의 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
InfraEnv 사용자 지정 리소스는 검색 ISO를 생성하는 구성을 제공합니다. 이 사용자 정의 리소스 내에서 프록시 설정, ignition 덮어쓰기 및 NMState 레이블의 값을 식별합니다. 이 사용자 정의 리소스의 spec.nmStateConfigLabelSelector 값은 NMStateConfig 사용자 지정 리소스를 참조합니다.
참고: optional NMStateConfig 사용자 지정 리소스를 포함하려는 경우 InfraEnv 사용자 정의 리소스에서 참조해야 합니다. NMStateConfig 사용자 지정 리소스를 생성하기 전에 InfraEnv 사용자 지정 리소스를 생성하는 경우 InfraEnv 사용자 정의 리소스를 편집하여 NMStateConfig 사용자 지정 리소스를 참조하고 참조가 추가된 후 ISO를 다운로드합니다.
다음 사용자 정의 리소스를 생성하고 적용합니다.
apiVersion: agent-install.openshift.io/v1beta1
kind: InfraEnv
metadata:
name: myinfraenv
namespace: demo-worker4
spec:
clusterRef:
name: single-node
namespace: demo-worker4
pullSecretRef:
name: pull-secret
sshAuthorizedKey: <your_public_key_here>
nmStateConfigLabelSelector:
matchLabels:
demo-nmstate-label: value
proxy:
httpProxy: http://USERNAME:PASSWORD@proxy.example.com:PORT
httpsProxy: https://USERNAME:PASSWORD@proxy.example.com:PORT
noProxy: .example.com,172.22.0.0/24,10.10.0.0/24
- 1
- ClusterDeployment 만들기 에서
clusterDeployment리소스 이름을 바꿉니다. - 2
1.7.3.9.3.7.1. InfraEnv 필드 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 필드 | 선택 사항 또는 필수 | 설명 |
|---|---|---|
|
| 선택 사항 | 검색 ISO 이미지에서 부팅될 때 호스트에 액세스할 수 있는 SSH 공개 키를 지정할 수 있습니다. |
|
| 선택 사항 |
호스트의 고정 IP, 브리지 및 본딩과 같은 고급 네트워크 구성을 통합합니다. 호스트 네트워크 구성은 선택한 라벨을 사용하여 하나 이상의 |
|
| 선택 사항 | proxy 섹션에서 검색하는 동안 호스트에 필요한 프록시 설정을 지정할 수 있습니다. |
참고: IPv6로 프로비저닝할 때 noProxy 설정에서 CIDR 주소 블록을 정의할 수 없습니다. 각 주소를 별도로 정의해야 합니다.
1.7.3.9.3.8. 검색 이미지에서 호스트 부팅 링크 복사링크가 클립보드에 복사되었습니다!
나머지 단계에서는 이전 절차의 결과 검색 ISO 이미지에서 호스트를 부팅하는 방법을 설명합니다.
다음 명령을 실행하여 네임스페이스에서 검색 이미지를 다운로드합니다.
curl --insecure -o image.iso $(kubectl -n sample-namespace get infraenvs.agent-install.openshift.io myinfraenv -o=jsonpath="{.status.isoDownloadURL}")- 검색 이미지를 가상 미디어, USB 드라이브 또는 다른 스토리지 위치로 이동하고 다운로드한 검색 이미지에서 호스트를 부팅합니다.
에이전트리소스는 자동으로 생성됩니다. 클러스터에 등록되어 있으며 검색 이미지에서 부팅되는 호스트를 나타냅니다.Agent사용자 정의 리소스를 승인하고 다음 명령을 실행하여 설치를 시작합니다.oc -n sample-namespace patch agents.agent-install.openshift.io 07e80ea9-200c-4f82-aff4-4932acb773d4 -p '{"spec":{"approved":true}}' --type merge에이전트 이름 및 UUID를 값으로 바꿉니다.
이전 명령의 출력에
APPROVED매개변수에true값이 포함된 대상 클러스터의 항목이 포함될 때 승인되었는지 확인할 수 있습니다.