"Kubeadm API로 컴포넌트 커스터마이징"의 두 판 사이의 차이

7번째 줄: 7번째 줄:
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/control-plane-flags/
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/control-plane-flags/
----
----
이 페이지는 kubeadm이 배포하는 컴포넌트를 커스터마이징하는 방법을 다룹니다. 컨트롤 플레인 컴포넌트의 경우 <code>ClusterConfiguration</code> 구조에서 플래그를 사용하거나 노드별 패치를 사용할 수 있습니다. kubelet 및 kube-proxy의 경우 <code>KubeletConfiguration</code>과 <code>KubeProxyConfiguration</code>을 각각 사용할 수 있습니다.


이 모든 옵션은 kubeadm 설정 API를 통해 가능합니다. 설정의 각 필드에 대한 자세한 내용은 [https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta3/ API 참조 페이지]를 참조하십시오.
{{NOTE}}
현재 kubeadm의 CoreDNS 배포를 커스터마이징하는 것은 지원되지 않습니다. <code>kube-system/coredns</code> ConfigMap을 수동으로 패치하고 나서 CoreDNS 파드를 다시 생성해야 합니다. 또는, 기본 CoreDNS 배포를 건너뛰고 사용자의 변형판을 배포할 수 있습니다. 이에 대한 자세한 내용은 [[kubeadm init#kubeadm을 사용한 초기화 단계|kubeadm을 사용한 초기화 단계]]를 참조하십시오.
{{/NOTE}}
{{NOTE}}
이미 생성된 클러스터를 재설정하려면 [[kubeadm 클러스터 재설정]]을 참조하십시오.
{{/NOTE}}
==ClusterConfiguration에 플래그로 컨트롤 플레인 커스터마이징==
kubeadm의 <code>ClusterConfiguration</code> 오브젝트는 API 서버, 컨트롤러매니저, 스케줄러와 같은 컨트롤 플레인 구성요소에 전달되는 기본 플래그 <code>extraArgs</code> 필드를 노출한다. 이 구성요소는 다음 필드를 사용하도록 정의되어 있다.
kubeadm의 <code>ClusterConfiguration</code> 오브젝트는 API 서버, 컨트롤러매니저, 스케줄러와 같은 컨트롤 플레인 구성요소에 전달되는 기본 플래그 <code>extraArgs</code> 필드를 노출한다. 이 구성요소는 다음 필드를 사용하도록 정의되어 있다.


26번째 줄: 38번째 줄:


__TOC__
__TOC__


== APIServer 플래그 ==
== APIServer 플래그 ==

2024년 6월 30일 (일) 11:04 판

1 개요

Crystal Clear action info.png 작성 중인 문서입니다.

Customizing components with the kubeadm API
kubeadm API로 컴포넌트 커스터마이징

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/control-plane-flags/


이 페이지는 kubeadm이 배포하는 컴포넌트를 커스터마이징하는 방법을 다룹니다. 컨트롤 플레인 컴포넌트의 경우 ClusterConfiguration 구조에서 플래그를 사용하거나 노드별 패치를 사용할 수 있습니다. kubelet 및 kube-proxy의 경우 KubeletConfigurationKubeProxyConfiguration을 각각 사용할 수 있습니다.

이 모든 옵션은 kubeadm 설정 API를 통해 가능합니다. 설정의 각 필드에 대한 자세한 내용은 API 참조 페이지를 참조하십시오.

Note

현재 kubeadm의 CoreDNS 배포를 커스터마이징하는 것은 지원되지 않습니다. kube-system/coredns ConfigMap을 수동으로 패치하고 나서 CoreDNS 파드를 다시 생성해야 합니다. 또는, 기본 CoreDNS 배포를 건너뛰고 사용자의 변형판을 배포할 수 있습니다. 이에 대한 자세한 내용은 kubeadm을 사용한 초기화 단계를 참조하십시오.

Note

이미 생성된 클러스터를 재설정하려면 kubeadm 클러스터 재설정을 참조하십시오.

2 ClusterConfiguration에 플래그로 컨트롤 플레인 커스터마이징

kubeadm의 ClusterConfiguration 오브젝트는 API 서버, 컨트롤러매니저, 스케줄러와 같은 컨트롤 플레인 구성요소에 전달되는 기본 플래그 extraArgs 필드를 노출한다. 이 구성요소는 다음 필드를 사용하도록 정의되어 있다.

  • apiServer
  • controllerManager
  • scheduler

extraArgs 필드는 key: value 쌍으로 구성되어 있다. 컨트롤 플레인 구성요소를 위한 플래그를 대체하려면 다음을 수행한다.

  1. 사용자 구성에서 적절한 필드를 추가한다.
  2. 필드에 대체할 플래그를 추가한다.
  3. kubeadm init--config <YOUR CONFIG YAML> 파라미터를 추가해서 실행한다.

각 필드의 구성에서 자세한 정보를 보려면, API 참고 문서에서 확인해 볼 수 있다.

참고:kubeadm config print init-defaults를 실행하고 원하는 파일에 출력을 저장하여 기본값인 ClusterConfiguration 오브젝트를 생성할 수 있다.

3 APIServer 플래그

자세한 내용은 kube-apiserver에 대한 참고 문서를 확인한다.

사용 예:

apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.16.0
apiServer:
  extraArgs:
    advertise-address: 192.168.0.103
    anonymous-auth: "false"
    enable-admission-plugins: AlwaysPullImages,DefaultStorageClass
    audit-log-path: /home/johndoe/audit.log

4 컨트롤러매니저 플래그

자세한 내용은 kube-controller-manager에 대한 참고 문서를 확인한다.

사용 예:

apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.16.0
controllerManager:
  extraArgs:
    cluster-signing-key-file: /home/johndoe/keys/ca.key
    bind-address: 0.0.0.0
    deployment-controller-sync-period: "50"

5 스케줄러 플래그

자세한 내용은 kube-scheduler에 대한 참고 문서를 확인한다.

사용 예:

apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.16.0
scheduler:
  extraArgs:
    address: 0.0.0.0
    config: /home/johndoe/schedconfig.yaml
    kubeconfig: /home/johndoe/kubeconfig.yaml
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}