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
required

쿼리할 ClusterInstance의 네임스페이스입니다.

string

경로

clusterinstance_name
required

쿼리할 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

경로

clusterinstance_namespace
required

사용하려는 ClusterInstance의 네임스페이스입니다.

string

경로

clusterinstance_name
required

사용할 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
required

쿼리할 ClusterInstance의 네임스페이스입니다.

string

경로

clusterinstance_name
required

쿼리할 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
필요

ClusterInstance 의 버전이 지정된 스키마입니다.

string

종류
필요

REST 리소스를 나타내는 문자열 값입니다.

string

메타데이터
필요

ClusterInstance 의 메타데이터입니다.

object

사양
필요

ClusterInstance 사양입니다.

spec

상태
필요

ClusterInstance 의 상태

status 오브젝트

spec

이름설명스키마

additionalNTPSources
optional

모든 클러스터 호스트에 추가해야 하는 NTP 소스를 지정합니다. 다른 방법을 통해 구성된 모든 NTP 소스에 추가됩니다.

array

baseDomain
필요

배포된 클러스터에 사용되는 기본 도메인을 지정합니다.

string

caBundleRef
선택 사항

호스트에 대한 신뢰할 수 있는 인증서의 새 번들이 포함된 ConfigMap 오브젝트를 참조합니다. ConfigMap 오브젝트의 tls-ca-bundle.pem 항목은 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem 에 작성됩니다.

string

클러스터 이름
필요

클러스터 이름을 지정합니다.

string

clusterNetwork
optional

Pod의 IP 주소 풀 목록을 지정합니다.

array

clusterType
optional

클러스터 유형을 지정합니다. 지원되는 값은 다음과 같습니다.

SNO
single-node OpenShift
HighlyAvailable
멀티 노드 OpenShift

string

cpuPartitioningMode
optional

설치 시 CPU 워크로드 파티셔닝에 대해 클러스터를 설정합니다. cpu CryostatingMode 값을 AllNodes 로 설정하여 워크로드 파티셔닝을 구성합니다. 구성을 완료하려면 PerformanceProfile CR에서 분리된 CPU와 예약된 CPU를 지정합니다. 기본값은 None 입니다.

string

diskEncryption
optional

클러스터의 디스크 암호화를 활성화하거나 비활성화합니다.

object

extraAnnotations
optional

다음 형식을 사용하여 렌더링된 템플릿에 적용할 추가 클러스터 수준 주석을 지정합니다.

extraAnnotations:
  ClusterDeployment:
    myClusterAnnotation: success

object

extraLabels
optional

다음 형식을 사용하여 렌더링된 템플릿에 적용할 추가 클러스터 수준 레이블을 지정합니다.

extraLabels:
  ManagedCluster:
    common: "true"
    label-a : "value-a"

object

extraManifestsRefs
optional

클러스터에 적용할 추가 매니페스트가 포함된 ConfigMap 오브젝트 참조 목록을 지정합니다.

array

holdInstallation
optional

지원 설치 관리자를 사용할 때 설치를 방지하려면 true 로 설정합니다. 검사 및 검증 단계를 완료할 수 있지만 RequirementsMet 조건이 true 가 되면 holdInstallation 필드가 false 로 설정될 때까지 설치가 시작되지 않습니다.

bool

ignitionConfigOverride
optional

초기 Ignition 구성에 대한 사용자 덮어쓰기를 지정합니다.

string

installConfigOverrides
optional

설치 구성 매개 변수를 정의합니다.

string

machineNetwork
optional

머신의 IP 주소 풀 목록을 지정합니다.

array

NetworkType
선택 사항

설치할 CNI(Container Network Interface) 플러그인을 지정합니다. 기본값은 IPv4용 OpenShiftSDN 및 IPv6 또는 단일 노드 OpenShift 클러스터의 OVNKubernetes 입니다.

string

platformType
optional

설치할 특정 플랫폼의 이름을 정의합니다. 지원되는 값은 다음과 같습니다.

  • BareMetal
  • vSphere
  • Nutanix
  • 외부
  • ""
  • 없음

string

프록시
선택 사항

클러스터 설치 구성에 사용되는 프록시 설정을 정의합니다.

object

pruneManifests
optional

apiVersionKind 값을 지정하여 제거할 클러스터 수준 매니페스트 목록을 정의합니다.

array

pullSecretRef
required

이미지를 가져올 수 있도록 pull-secret 파일을 구성합니다. pull-secret 파일을 생성할 때 호스트를 프로비저닝하는 ClusterInstance CR과 동일한 네임스페이스를 사용합니다.

object

serviceNetwork
optional

서비스의 IP 주소 풀 목록을 지정합니다.

array

sshPublicKey
optional

인스턴스에 대한 액세스를 제공하려면 공개 SSH(Secure Shell) 키를 지정합니다. 이 키는 SSH 액세스를 허용하도록 호스트에 추가됩니다.

string


이/가 필요한 노드

각 노드의 구성 매개변수를 지정합니다.

노드 배열

templateRefs
필수

클러스터 수준 템플릿에 대한 참조 목록을 지정합니다. 클러스터 수준 템플릿은 ConfigMap 오브젝트로 구성되며, 데이터 필드의 키는 설치 매니페스트를 나타냅니다. 클러스터 수준 템플릿은 ClusterInstance CR의 클러스터당 한 번 인스턴스화됩니다.

array

노드

이름설명스키마

automatedCleaningMode
optional

디스크를 완전히 삭제하지 않고 값을 메타데이터 로 설정하여 디스크 파티션 테이블만 제거할 수 있습니다. 기본값은 disabled 입니다.

string

bmcAddress
필요

호스트에 액세스하는 데 사용하는 BMC 주소입니다. 모든 클러스터 유형에 적용됩니다. BMC 주소 지정에 대한 자세한 내용은 추가 리소스의 BMC 주소 지정을 참조하십시오. 참고: 지금까지 엣지 Telco 사용 사례에서는 가상 미디어만 GitOps ZTP에서 사용할 수 있도록 지원됩니다.

string

bmcCredentialsName
required

호스트 BMC 인증 정보를 사용하여 별도로 생성하는 bmh-secret CR을 구성합니다. bmh-secret CR을 생성할 때 호스트를 프로비저닝하는 ClusterInstance CR과 동일한 네임스페이스를 사용합니다.

string

bootMACAddress
필요

PXE가 부팅되는 MAC 주소를 지정합니다. 가상 BMC에 의해 구동되는 libvirt VM에 필요합니다.

string

bootMode
optional

호스트의 부팅 모드를 UEFI 로 설정합니다. 기본값은 UEFI 입니다. UEFISecureBoot 를 사용하여 호스트에서 보안 부팅을 활성화합니다. 지원되는 값은 다음과 같습니다.

  • UEFI
  • UEFISecureBoot
  • 레거시

string

extraAnnotations
optional

다음 형식을 사용하여 렌더링된 템플릿에 적용할 추가 노드 수준 주석을 지정합니다.

extraAnnotations:
  BareMetalHost:
    myNodeAnnotation: success

object

extraLabels
optional

렌더링된 템플릿에 적용할 추가 노드 수준 레이블을 지정합니다.

extraLabels:
  ManagedCluster:
    common: "true"
    label-a : "value-a"

object

호스트 이름
필요

호스트 이름을 정의합니다.

string

installerArgs
선택 사항

호스트의 :op-system-first: 설치 프로그램 인수에 대한 사용자 덮어쓰기를 지정합니다.

string

ignitionConfigOverride
optional

초기 Ignition 구성에 대한 사용자 덮어쓰기를 지정합니다. 이 필드를 사용하여 영구 스토리지의 파티션을 할당합니다. 디스크 ID와 크기를 특정 하드웨어에 조정합니다.

string

ironicInspect
optional

베어 메탈 호스트를 등록하는 동안 자동 인트로스펙션이 실행되는지 여부를 지정합니다.

string

nodeLabels
optional

관리 클러스터에서 노드의 사용자 정의 노드 레이블을 지정합니다. 이는 Red Hat Advanced Cluster Management 구성 요소에서 사용하지 않는 추가 레이블입니다. 사용자 정의 노드 레이블을 추가하면 해당 라벨의 특정 구성을 참조하는 사용자 정의 머신 구성 풀과 연결할 수 있습니다. 설치 중에 사용자 지정 노드 레이블을 추가하면 배포 프로세스가 더 효과적이며 설치가 완료된 후 추가 재부팅이 필요하지 않습니다.

참고: BareMetalHost 템플릿에서 사용하면 사용자 정의 레이블이 bmac.agent-install.openshift.io 접두사를 사용하여 BareMetalHost 주석에 추가됩니다.

object

nodeNetwork
optional

정적 네트워크가 있는 노드의 네트워크 설정을 구성합니다.

object

pruneManifests
optional

apiVersionKind 값을 지정하여 제거할 노드 수준 매니페스트 목록을 정의합니다.

array

역할
선택 사항

노드의 역할(예: master 또는 worker )을 구성합니다.

string

rootDeviceHints
optional

배포할 장치를 지정합니다. 재부팅 시 안정적인 식별자를 사용하는 것이 좋습니다. 예를 들어 wwn: <disk_wwn> 또는 deviceName: /dev/disk/by-path/<device_path >. <by-path& gt; 값이 선호됩니다. 안정적인 식별자의 자세한 목록은 "루트 장치 팁 정보"를 참조하십시오. 장치의 이름, 모델, 크기 또는 공급 업체를 지정할 수도 있습니다.

object

templateRefs
필수

노드 수준 템플릿에 대한 참조 목록을 지정합니다. 노드 수준 템플릿은 ConfigMap 오브젝트로 구성되며, 데이터 필드의 키는 설치 매니페스트를 나타냅니다. 노드 수준 템플릿은 ClusterInstance CR의 각 노드에 대해 한 번 인스턴스화됩니다.

array

status

이름설명스키마

조건
선택 사항

ClusterInstance 리소스에서 수행된 작업과 관련된 조건을 나열합니다.

conditions 배열

deploymentConditions
optional

ClusterDeployment 리소스와 연결된 hive 상태 조건을 나열합니다.

deploymentConditions 어레이

manifestsRendered
선택 사항

렌더링된 매니페스트와 해당 상태를 나열합니다.

array

observedGeneration
optional

ClusterInstance 오브젝트의 관찰된 생성을 추적합니다.

integer

conditions

유형설명

ClusterInstanceValidated

SiteConfig Operator가 ClusterInstance spec 필드를 검증하고 시크릿 및 추가 매니페스트 ConfigMaps 오브젝트와 같은 필수 아티팩트를 확인했음을 나타냅니다.

RenderedTemplates

siteConfig Operator가 참조된 Golang 클러스터 템플릿을 성공적으로 검증했음을 나타냅니다.

RenderedTemplatesValidated

SiteConfig 운영자가 설치 매니페스트를 렌더링하고 예행 실행에 성공했음을 나타냅니다.

RenderedTemplatesApplied

SiteConfig 운영자가 설치 매니페스트를 생성하고 기본 Operator가 이를 사용했음을 나타냅니다.

provisioned

기본 Operator가 클러스터를 프로비저닝하고 있음을 나타냅니다.

deploymentConditions

유형설명

ClusterInstallRequirementsMet

설치를 시작할 수 있음을 나타냅니다.

ClusterInstallCompleted

클러스터 설치에 성공했음을 나타냅니다.

ClusterInstallFailed

클러스터 설치에 실패했음을 나타냅니다.

ClusterInstallStopped

클러스터 설치가 중지되었음을 나타냅니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.