1.22. KlusterletConfig API (v1alpha1)
1.22.1. 개요
이 문서는 Red Hat Advanced Cluster Management for Kubernetes용 KlusterletConfig 리소스에 대한 것입니다. KlusterletConfig 리소스에는 생성, 쿼리, 삭제 및 업데이트의 네 가지 요청이 있습니다. KlusterletConfig에는 nodeSelector
,tolerations
및 pullSecret
과 같은 klusterlet에 대한 구성 정보가 포함되어 있습니다. KlusterletConfig는 클러스터 범위 리소스이며 open-cluster-managemnet-agent
네임스페이스의 klusterlet Pod에서만 작동합니다. KlusterletConfig는 애드온 배포 구성에 영향을 미치지 않습니다.
1.22.1.1. 버전 정보
버전 : 2.10.0
1.22.1.2. URI 스키마
BasePath : /kubernetes/apis
Schemes : HTTPS
1.22.1.3. 태그
- config.open-cluster-management.io : KlusterletConfig 생성 및 관리
1.22.2. 경로
1.22.2.1. 모든 KlusterletConfig 쿼리
GET /config.open-cluster-management.io/v1alpha1/namespaces/{namespace}/klusterletconfigs
1.22.2.1.1. 설명
자세한 내용은 KlusterletConfigs를 쿼리합니다.
1.22.2.1.2. 매개 변수
유형 | 이름 | 설명 | 스키마 |
---|---|---|---|
헤더 |
COOKIE | 권한 부여: Bearer {ACCESS_TOKEN}; ACCESS_TOKEN은 사용자 액세스 토큰입니다. | string |
1.22.2.1.3. 응답
HTTP 코드 | 설명 | 스키마 |
---|---|---|
200 | 성공 | 콘텐츠 없음 |
403 | 액세스 금지 | 콘텐츠 없음 |
404 | 리소스를 찾을 수 없음 | 콘텐츠 없음 |
500 | 내부 서비스 오류 | 콘텐츠 없음 |
503 | 서비스를 사용할 수 없음 | 콘텐츠 없음 |
1.22.2.1.4. 사용
-
klusterletconfig/yaml
1.22.2.1.5. 태그
- config.open-cluster-management.io
1.22.2.2. KlusterletConfig 생성
POST /config.open-cluster-management.io/v1alpha1/namespaces/{namespace}/klusterletconfigs
1.22.2.2.1. 설명
KlusterletConfig를 생성합니다.
1.22.2.2.2. 매개 변수
유형 | 이름 | 설명 | 스키마 |
---|---|---|---|
헤더 |
COOKIE | 권한 부여: Bearer {ACCESS_TOKEN}; ACCESS_TOKEN은 사용자 액세스 토큰입니다. | string |
본문 |
본문 | 생성할 KlusterletConfig 바인딩을 설명하는 매개변수입니다. |
1.22.2.2.3. 응답
HTTP 코드 | 설명 | 스키마 |
---|---|---|
200 | 성공 | 콘텐츠 없음 |
403 | 액세스 금지 | 콘텐츠 없음 |
404 | 리소스를 찾을 수 없음 | 콘텐츠 없음 |
500 | 내부 서비스 오류 | 콘텐츠 없음 |
503 | 서비스를 사용할 수 없음 | 콘텐츠 없음 |
1.22.2.2.4. 사용
-
klusterletconfig/yaml
1.22.2.2.5. 태그
- config.open-cluster-management.io
1.22.2.2.6. HTTP 요청의 예
1.22.2.2.6.1. 요청 본문
{ "apiVersion": "apiextensions.k8s.io/v1", "kind": "CustomResourceDefinition", "metadata": { "annotations": { "controller-gen.kubebuilder.io/version": "v0.7.0" }, "creationTimestamp": null, "name": "klusterletconfigs.config.open-cluster-management.io" }, "spec": { "group": "config.open-cluster-management.io", "names": { "kind": "KlusterletConfig", "listKind": "KlusterletConfigList", "plural": "klusterletconfigs", "singular": "klusterletconfig" }, "preserveUnknownFields": false, "scope": "Cluster", "versions": [ { "name": "v1alpha1", "schema": { "openAPIV3Schema": { "description": "KlusterletConfig contains the configuration of a klusterlet including the upgrade strategy, config overrides, proxy configurations etc.", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { "description": "Spec defines the desired state of KlusterletConfig", "properties": { "hubKubeAPIServerProxyConfig": { "description": "HubKubeAPIServerProxyConfig holds proxy settings for connections between klusterlet/add-on agents on the managed cluster and the kube-apiserver on the hub cluster. Empty means no proxy settings is available.", "properties": { "caBundle": { "description": "CABundle is a CA certificate bundle to verify the proxy server. It will be ignored if only HTTPProxy is set; And it is required when HTTPSProxy is set and self signed CA certificate is used by the proxy server.", "format": "byte", "type": "string" }, "httpProxy": { "description": "HTTPProxy is the URL of the proxy for HTTP requests", "type": "string" }, "httpsProxy": { "description": "HTTPSProxy is the URL of the proxy for HTTPS requests HTTPSProxy will be chosen if both HTTPProxy and HTTPSProxy are set.", "type": "string" } }, "type": "object" }, "nodePlacement": { "description": "NodePlacement enables explicit control over the scheduling of the agent components. If the placement is nil, the placement is not specified, it will be omitted. If the placement is an empty object, the placement will match all nodes and tolerate nothing.", "properties": { "nodeSelector": { "additionalProperties": { "type": "string" }, "description": "NodeSelector defines which Nodes the Pods are scheduled on. The default is an empty list.", "type": "object" }, "tolerations": { "description": "Tolerations is attached by pods to tolerate any taint that matches the triple <key,value,effect> using the matching operator <operator>. The default is an empty list.", "items": { "description": "The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.", "properties": { "effect": { "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", "type": "string" }, "key": { "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", "type": "string" }, "operator": { "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", "type": "string" }, "tolerationSeconds": { "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", "format": "int64", "type": "integer" }, "value": { "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "pullSecret": { "description": "PullSecret is the name of image pull secret.", "properties": { "apiVersion": { "description": "API version of the referent.", "type": "string" }, "fieldPath": { "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", "type": "string" }, "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "namespace": { "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", "type": "string" }, "resourceVersion": { "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } }, "type": "object" }, "registries": { "description": "Registries includes the mirror and source registries. The source registry will be replaced by the Mirror.", "items": { "properties": { "mirror": { "description": "Mirror is the mirrored registry of the Source. Will be ignored if Mirror is empty.", "type": "string" }, "source": { "description": "Source is the source registry. All image registries will be replaced by Mirror if Source is empty.", "type": "string" } }, "required": [ "mirror" ], "type": "object" }, "type": "array" } }, "type": "object" }, "status": { "description": "Status defines the observed state of KlusterletConfig", "type": "object" } }, "type": "object" } }, "served": true, "storage": true, "subresources": { "status": {} } } ] }, "status": { "acceptedNames": { "kind": "", "plural": "" }, "conditions": [], "storedVersions": [] } }
1.22.2.3. 단일 KlusterletConfig 쿼리
GET /config.open-cluster-management.io/v1alpha1/namespaces/{namespace}/klusterletconfigs/{klusterletconfig_name}
1.22.2.3.1. 설명
자세한 내용은 단일 KlusterletConfig를 쿼리합니다.
1.22.2.3.2. 매개 변수
유형 | 이름 | 설명 | 스키마 |
---|---|---|---|
헤더 |
COOKIE | 권한 부여: Bearer {ACCESS_TOKEN}; ACCESS_TOKEN은 사용자 액세스 토큰입니다. | string |
경로 |
klusterletconfig_name | 쿼리할 KlusterletConfig의 이름입니다. | string |
1.22.2.3.3. 응답
HTTP 코드 | 설명 | 스키마 |
---|---|---|
200 | 성공 | 콘텐츠 없음 |
403 | 액세스 금지 | 콘텐츠 없음 |
404 | 리소스를 찾을 수 없음 | 콘텐츠 없음 |
500 | 내부 서비스 오류 | 콘텐츠 없음 |
503 | 서비스를 사용할 수 없음 | 콘텐츠 없음 |
1.22.2.3.4. 태그
- config.open-cluster-management.io
1.22.2.4. KlusterletConfig 삭제
DELETE /addon.open-cluster-management.io/v1alpha1/namespaces/{namespace}/klusterletconfigs/{klusterletconfig_name}
1.22.2.4.1. 설명
단일 klusterletconfig를 삭제합니다.
1.22.2.4.2. 매개 변수
유형 | 이름 | 설명 | 스키마 |
---|---|---|---|
헤더 |
COOKIE | 권한 부여: Bearer {ACCESS_TOKEN}; ACCESS_TOKEN은 사용자 액세스 토큰입니다. | string |
경로 |
klusterletconfig_name | 삭제할 KlusterletConfig의 이름입니다. | string |
1.22.2.4.3. 응답
HTTP 코드 | 설명 | 스키마 |
---|---|---|
200 | 성공 | 콘텐츠 없음 |
403 | 액세스 금지 | 콘텐츠 없음 |
404 | 리소스를 찾을 수 없음 | 콘텐츠 없음 |
500 | 내부 서비스 오류 | 콘텐츠 없음 |
503 | 서비스를 사용할 수 없음 | 콘텐츠 없음 |
1.22.2.4.4. 태그
- config.open-cluster-management.io
1.22.3. 정의
1.22.3.1. KlusterletConfig
이름 | 설명 | 스키마 |
---|---|---|
apiVersion | KlusterletConfig의 버전이 지정된 스키마입니다. | string |
종류 | REST 리소스를 나타내는 문자열 값입니다. | string |
메타데이터 | KlusterletConfig의 메타데이터입니다. | object |
사양 | KlusterletConfig의 사양입니다. |
spec
이름 | 설명 | 스키마 |
---|---|---|
레지스트리 | 미러 및 소스 레지스트리를 포함합니다. 소스 레지스트리는 미러로 교체됩니다. | 레지스트리 |
pullSecret | 이미지 풀 시크릿의 이름입니다. | object |
nodePlacement | 관리 클러스터에서 애드온 에이전트의 스케줄링 제어를 활성화합니다. | |
hubKubeAPIServerProxyConfig | 관리 클러스터에서 klusterlet 또는 애드온 에이전트 간 연결에 대한 프록시 설정을 포함하고 hub 클러스터의 kube-apiserver가 있습니다. 비어있는 것은 프록시 설정을 사용할 수 없음을 의미합니다. |
nodePlacement
이름 | 설명 | 스키마 |
---|---|---|
nodeSelector |
Pod가 실행되도록 예약되는 노드를 정의합니다. | map[string]string |
허용 오차 |
Pod에 적용되고 일치하는 Operator(<operator>)를 사용하여 < | []corev1.Toleration |
kubeAPIServerProxyConfig
이름 | 설명 | 스키마 |
---|---|---|
caBundle | 프록시 서버를 확인하는 CA 인증서 번들입니다. HTTPProxy만 설정된 경우 번들은 무시됩니다. HTTPSProxy가 설정되고 자체 서명된 CA 인증서를 프록시 서버에서 사용하는 경우 번들이 필요합니다. | map[string]string |
httpProxy | HTTP 요청에 대한 프록시의 URL | map[string]string |
httpsProxy | HTTPS 요청에 대한 프록시의 URL입니다. HTTPProxy 및 HTTPSProxy가 모두 설정된 경우 httpsProxy가 선택됩니다. | map[string]string |