1.2. ClusterInstance API
1.2.1. 개요
이 문서는 Red Hat Advanced Cluster Management for Kubernetes용 ClusterInstance 리소스에 대한 것입니다. ClusterInstance 리소스에는 생성, 쿼리, 삭제 및 업데이트의 네 가지 요청이 있습니다.
1.2.1.1. 버전 정보
버전 : 2.12.0
1.2.1.2. URI 스키마
BasePath : /kubernetes/apis
Schemes : HTTPS
1.2.1.3. 태그
- siteconfig.open-cluster-management.io : 클러스터 생성 및 관리
1.2.2. 경로
1.2.2.1. 모든 클러스터 쿼리
GET /siteconfig.open-cluster-management.io/v1alpha1/{clusterinstance_namespace}/{clusterinstance_name}
1.2.2.1.1. 설명
자세한 내용은 클러스터를 쿼리합니다.
1.2.2.1.2. 매개 변수
유형 | 이름 | 설명 | 스키마 |
---|---|---|---|
헤더 |
COOKIE | 권한 부여: Bearer {ACCESS_TOKEN}; ACCESS_TOKEN은 사용자 액세스 토큰입니다. | string |
경로 |
clusterinstance_namespace | 쿼리할 ClusterInstance의 네임스페이스입니다. | string |
경로 |
clusterinstance_name | 쿼리할 ClusterInstance의 이름입니다. | string |
1.2.2.1.3. 응답
HTTP 코드 | 설명 | 스키마 |
---|---|---|
200 | 성공 | 콘텐츠 없음 |
403 | 액세스 금지 | 콘텐츠 없음 |
404 | 리소스를 찾을 수 없음 | 콘텐츠 없음 |
500 | 내부 서비스 오류 | 콘텐츠 없음 |
503 | 서비스를 사용할 수 없음 | 콘텐츠 없음 |
1.2.2.1.4. 사용
-
clusterinstance/json
1.2.2.1.5. 태그
- siteconfig.open-cluster-management.io
1.2.2.2. 설치 매니페스트 생성
POST /siteconfig.open-cluster-management.io/v1alpha1/<clusterinstance_namespace>/<clusterinstance_name>
1.2.2.2.1. 설명
선택한 설치 방법을 위해 SiteConfig Operator를 사용하여 설치 매니페스트를 생성합니다.
1.2.2.2.2. 매개 변수
유형 | 이름 | 설명 | 스키마 |
---|---|---|---|
헤더 |
COOKIE | 권한 부여: Bearer {ACCESS_TOKEN}; ACCESS_TOKEN은 사용자 액세스 토큰입니다. | string |
본문 |
본문 | 생성할 설치 매니페스트를 설명하는 매개변수입니다. | |
경로 |
clusterinstance_namespace | 사용하려는 ClusterInstance의 네임스페이스입니다. | string |
경로 |
clusterinstance_name | 사용할 ClusterInstance의 이름입니다. | string |
1.2.2.2.3. 응답
HTTP 코드 | 설명 | 스키마 |
---|---|---|
200 | 성공 | 콘텐츠 없음 |
403 | 액세스 금지 | 콘텐츠 없음 |
404 | 리소스를 찾을 수 없음 | 콘텐츠 없음 |
500 | 내부 서비스 오류 | 콘텐츠 없음 |
503 | 서비스를 사용할 수 없음 | 콘텐츠 없음 |
1.2.2.2.4. 사용
-
clusterinstance/json
1.2.2.2.5. 태그
- siteconfig.open-cluster-management.io
1.2.2.2.6. HTTP 요청의 예
1.2.2.2.6.1. 요청 본문
{ "apiVersion": "siteconfig.open-cluster-management.io/v1alpha1", "kind": "ClusterInstance", "metadata": { "name": "site-sno-du-1", "namespace": "site-sno-du-1" }, "spec": { "baseDomain": "example.com", "pullSecretRef": { "name": "pullSecretName" }, "sshPublicKey": "ssh-rsa ", "clusterName": "site-sno-du-1", "proxy": { "noProxys": "foobar" }, "caBundleRef": { "name": "my-bundle-ref" }, "extraManifestsRefs": [ { "name": "foobar1" }, { "name": "foobar2" } ], "networkType": "OVNKubernetes", "installConfigOverrides": "{\"capabilities\":{\"baselineCapabilitySet\": \"None\", \"additionalEnabledCapabilities\": [ \"marketplace\", \"NodeTuning\" ] }}", "extraLabels": { "ManagedCluster": { "group-du-sno": "test", "common": "true", "sites": "site-sno-du-1" } }, "clusterNetwork": [ { "cidr": "203.0.113.0/24", "hostPrefix": 23 } ], "machineNetwork": [ { "cidr": "203.0.113.0/24" } ], "serviceNetwork": [ { "cidr": "203.0.113.0/24" } ], "additionalNTPSources": [ "NTP.server1", "198.51.100.100" ], "ignitionConfigOverride": "{\"ignition\": {\"version\": \"3.1.0\"}, \"storage\": {\"files\": [{\"path\": \"/etc/containers/registries.conf\", \"overwrite\": true, \"contents\": {\"source\": \"data:text/plain;base64,foobar==\"}}]}}", "diskEncryption": { "type": "nbde", "tang": [ { "url": "http://192.0.2.5:7500", "thumbprint": "1234567890" } ] }, "clusterType": "SNO", "templateRefs": [ { "name": "ai-cluster-templates-v1", "namespace": "rhacm" } ], "nodes": [ { "hostName": "node1", "role": "master", "templateRefs": [ { "name": "ai-node-templates-v1", "namespace": "rhacm" } ], "ironicInspect": "", "bmcAddress": "idrac-virtualmedia+https://203.0.113.100/redfish/v1/Systems/System.Embedded.1", "bmcCredentialsName": { "name": "<bmcCredentials_secre_name>" }, "bootMACAddress": "00:00:5E:00:53:00", "bootMode": "UEFI", "installerArgs": "[\"--append-karg\", \"nameserver=8.8.8.8\", \"-n\"]", "ignitionConfigOverride": "{\"ignition\": {\"version\": \"3.1.0\"}, \"storage\": {\"files\": [{\"path\": \"/etc/containers/registries.conf\", \"overwrite\": true, \"contents\": {\"source\": \"data:text/plain;base64,foobar==\"}}]}}", "nodeNetwork": { "interfaces": [ { "name": "eno1", "macAddress": "00:00:5E:00:53:01" } ], "config": { "interfaces": [ { "name": "eno1", "type": "ethernet", "ipv4": { "enabled": true, "dhcp": false, "address": [ { "ip": "192.0.2.1", "prefix-length": 24 } ] }, "ipv6": { "enabled": true, "dhcp": false, "address": [ { "ip": "2001:0DB8:0:0:0:0:0:1", "prefix-length": 32 } ] } } ], "dns-resolver": { "config": { "server": [ "198.51.100.1" ] } }, "routes": { "config": [ { "destination": "0.0.0.0/0", "next-hop-address": "203.0.113.255", "next-hop-interface": "eno1", "table-id": 254 } ] } } } } ] } }
1.2.2.3. 단일 클러스터 쿼리
GET /siteconfig.open-cluster-management.io/v1alpha1/<clusterinstance_namespace>/<clusterinstance_name>
1.2.2.3.1. 설명
자세한 내용은 단일 클러스터를 쿼리합니다.
1.2.2.3.2. 매개 변수
유형 | 이름 | 설명 | 스키마 |
---|---|---|---|
헤더 |
COOKIE | 권한 부여: Bearer {ACCESS_TOKEN}; ACCESS_TOKEN은 사용자 액세스 토큰입니다. | string |
경로 |
clusterinstance_namespace | 쿼리할 ClusterInstance의 네임스페이스입니다. | string |
경로 |
clusterinstance_name | 쿼리할 ClusterInstance의 이름입니다. | string |
1.2.2.3.3. 응답
HTTP 코드 | 설명 | 스키마 |
---|---|---|
200 | 성공 | 콘텐츠 없음 |
403 | 액세스 금지 | 콘텐츠 없음 |
404 | 리소스를 찾을 수 없음 | 콘텐츠 없음 |
500 | 내부 서비스 오류 | 콘텐츠 없음 |
503 | 서비스를 사용할 수 없음 | 콘텐츠 없음 |
1.2.2.3.4. 태그
- siteconfig.open-cluster-management.io
1.2.3. 정의
1.2.3.1. ClusterInstance
중요: 특정 필드는 특정 설치 흐름에만 관련이 있습니다. 관련 문서를 확인하여 선택한 설치 방법에 적용할 수 있는 필드를 확인합니다. 지원 설치 관리자 및 이미지 기반 설치의 경우 다음 문서를 참조하십시오.
이름 | 설명 | 스키마 |
---|---|---|
apiVersion |
| string |
종류 | REST 리소스를 나타내는 문자열 값입니다. | string |
메타데이터 |
| object |
사양 |
| |
상태 |
| status 오브젝트 |
spec
이름 | 설명 | 스키마 |
---|---|---|
additionalNTPSources | 모든 클러스터 호스트에 추가해야 하는 NTP 소스를 지정합니다. 다른 방법을 통해 구성된 모든 NTP 소스에 추가됩니다. | array |
baseDomain | 배포된 클러스터에 사용되는 기본 도메인을 지정합니다. | string |
caBundleRef |
호스트에 대한 신뢰할 수 있는 인증서의 새 번들이 포함된 | string |
클러스터 이름 | 클러스터 이름을 지정합니다. | string |
clusterNetwork | Pod의 IP 주소 풀 목록을 지정합니다. | array |
clusterType | 클러스터 유형을 지정합니다. 지원되는 값은 다음과 같습니다.
| string |
cpuPartitioningMode |
설치 시 CPU 워크로드 파티셔닝에 대해 클러스터를 설정합니다. | string |
diskEncryption | 클러스터의 디스크 암호화를 활성화하거나 비활성화합니다. | object |
extraAnnotations |
다음 형식을 사용하여 렌더링된 템플릿에 적용할 추가 클러스터 수준 주석을 지정합니다. extraAnnotations: ClusterDeployment: myClusterAnnotation: success | object |
extraLabels |
다음 형식을 사용하여 렌더링된 템플릿에 적용할 추가 클러스터 수준 레이블을 지정합니다. extraLabels: ManagedCluster: common: "true" label-a : "value-a" | object |
extraManifestsRefs |
클러스터에 적용할 추가 매니페스트가 포함된 | array |
holdInstallation |
지원 설치 관리자를 사용할 때 설치를 방지하려면 | bool |
ignitionConfigOverride |
초기 Ignition 구성에 대한 사용자 덮어쓰기를 지정합니다. | string |
installConfigOverrides | 설치 구성 매개 변수를 정의합니다. | string |
machineNetwork | 머신의 IP 주소 풀 목록을 지정합니다. | array |
NetworkType |
설치할 CNI(Container Network Interface) 플러그인을 지정합니다. 기본값은 IPv4용 | string |
platformType | 설치할 특정 플랫폼의 이름을 정의합니다. 지원되는 값은 다음과 같습니다.
| string |
프록시 | 클러스터 설치 구성에 사용되는 프록시 설정을 정의합니다. | object |
pruneManifests |
| array |
pullSecretRef |
이미지를 가져올 수 있도록 | object |
serviceNetwork | 서비스의 IP 주소 풀 목록을 지정합니다. | array |
sshPublicKey | 인스턴스에 대한 액세스를 제공하려면 공개 SSH(Secure Shell) 키를 지정합니다. 이 키는 SSH 액세스를 허용하도록 호스트에 추가됩니다. | string |
| 각 노드의 구성 매개변수를 지정합니다. | 노드 배열 |
templateRefs |
클러스터 수준 템플릿에 대한 참조 목록을 지정합니다. 클러스터 수준 템플릿은 | array |
노드
이름 | 설명 | 스키마 |
---|---|---|
automatedCleaningMode |
디스크를 완전히 삭제하지 않고 값을 | string |
bmcAddress | 호스트에 액세스하는 데 사용하는 BMC 주소입니다. 모든 클러스터 유형에 적용됩니다. BMC 주소 지정에 대한 자세한 내용은 추가 리소스의 BMC 주소 지정을 참조하십시오. 참고: 지금까지 엣지 Telco 사용 사례에서는 가상 미디어만 GitOps ZTP에서 사용할 수 있도록 지원됩니다. | string |
bmcCredentialsName |
호스트 BMC 인증 정보를 사용하여 별도로 생성하는 | string |
bootMACAddress |
PXE가 부팅되는 MAC 주소를 지정합니다. 가상 BMC에 의해 구동되는 | string |
bootMode |
호스트의 부팅 모드를
| string |
extraAnnotations |
다음 형식을 사용하여 렌더링된 템플릿에 적용할 추가 노드 수준 주석을 지정합니다. extraAnnotations: BareMetalHost: myNodeAnnotation: success | object |
extraLabels |
렌더링된 템플릿에 적용할 추가 노드 수준 레이블을 지정합니다. extraLabels: ManagedCluster: common: "true" label-a : "value-a" | object |
호스트 이름 | 호스트 이름을 정의합니다. | string |
installerArgs | 호스트의 :op-system-first: 설치 프로그램 인수에 대한 사용자 덮어쓰기를 지정합니다. | string |
ignitionConfigOverride | 초기 Ignition 구성에 대한 사용자 덮어쓰기를 지정합니다. 이 필드를 사용하여 영구 스토리지의 파티션을 할당합니다. 디스크 ID와 크기를 특정 하드웨어에 조정합니다. | string |
ironicInspect | 베어 메탈 호스트를 등록하는 동안 자동 인트로스펙션이 실행되는지 여부를 지정합니다. | string |
nodeLabels | 관리 클러스터에서 노드의 사용자 정의 노드 레이블을 지정합니다. 이는 Red Hat Advanced Cluster Management 구성 요소에서 사용하지 않는 추가 레이블입니다. 사용자 정의 노드 레이블을 추가하면 해당 라벨의 특정 구성을 참조하는 사용자 정의 머신 구성 풀과 연결할 수 있습니다. 설치 중에 사용자 지정 노드 레이블을 추가하면 배포 프로세스가 더 효과적이며 설치가 완료된 후 추가 재부팅이 필요하지 않습니다.
참고: | object |
nodeNetwork | 정적 네트워크가 있는 노드의 네트워크 설정을 구성합니다. | object |
pruneManifests |
| array |
역할 |
노드의 역할(예: | string |
rootDeviceHints |
배포할 장치를 지정합니다. 재부팅 시 안정적인 식별자를 사용하는 것이 좋습니다. 예를 들어 | object |
templateRefs |
노드 수준 템플릿에 대한 참조 목록을 지정합니다. 노드 수준 템플릿은 | array |
status
이름 | 설명 | 스키마 |
---|---|---|
조건 |
| conditions 배열 |
deploymentConditions |
| |
manifestsRendered | 렌더링된 매니페스트와 해당 상태를 나열합니다. | array |
observedGeneration |
| integer |
conditions
유형 | 설명 |
---|---|
ClusterInstanceValidated |
SiteConfig Operator가 |
RenderedTemplates | siteConfig Operator가 참조된 Golang 클러스터 템플릿을 성공적으로 검증했음을 나타냅니다. |
RenderedTemplatesValidated | SiteConfig 운영자가 설치 매니페스트를 렌더링하고 예행 실행에 성공했음을 나타냅니다. |
RenderedTemplatesApplied | SiteConfig 운영자가 설치 매니페스트를 생성하고 기본 Operator가 이를 사용했음을 나타냅니다. |
provisioned | 기본 Operator가 클러스터를 프로비저닝하고 있음을 나타냅니다. |
deploymentConditions
유형 | 설명 |
---|---|
ClusterInstallRequirementsMet | 설치를 시작할 수 있음을 나타냅니다. |
ClusterInstallCompleted | 클러스터 설치에 성공했음을 나타냅니다. |
ClusterInstallFailed | 클러스터 설치에 실패했음을 나타냅니다. |
ClusterInstallStopped | 클러스터 설치가 중지되었음을 나타냅니다. |
추가 리소스