투구 설명 | 4단계

Helm은 Kubernetes 애플리케이션 설치 및 관리를 간소화하는 도구입니다. Kubernetes의 yum 및 homebrew와 같이 생각하십시오. Helm은 charts이라는 패키징 형식을 사용합니다. 차트는 관련 Kubernetes 리소스 세트를 설명하는 파일 모음입니다. helm은 배포 및 서비스를 설치, 실행, 업데이트하는 명령을 제공합니다.



경운기의 개념



Helm의 서버 부분인 Tiller는 일반적으로 Kubernetes 클러스터 내부에서 실행됩니다. 그러나 개발을 위해 로컬에서 실행하고 원격 Kubernetes 클러스터와 통신하도록 구성할 수도 있습니다.

In Helm v3 tiller is gone, and there is only Helm client.



HELM 차트 이해



Helm은 차트라는 패키징 형식을 사용합니다. 차트는 관련 Kubernetes 리소스 세트를 설명하는 파일 모음입니다. HTTP 서버, 데이터베이스, 캐시 등이 포함된 전체 웹 앱 스택 또는 간단한 항목을 배포하는 데 단일 차트를 사용할 수 있습니다.

템플릿은 Kubernetes가 이해할 수 있는 YAML 형식의 리소스 설명인 매니페스트 파일을 생성합니다. 템플릿이 어떻게 구성되어 있고 어떻게 사용되는지 살펴보겠습니다.



helm 차트helm create를 작성하는 것이 명령입니다. YAML 파일의 기본 템플릿을 생성하고 기본 템플릿을 원하는 방식으로 수정할 수 있으며 helm-hub에서 Kubernetes 지원 앱을 찾을 수 있으며 생성한 helm 차트를 푸시할 수 있습니다.

우리는 GKE helm을 사용하고 있고 kubectl은 이미 설정되어 있고 사용할 준비가 되어 있으므로 설치를 통해 설정해야 합니다. Google Kubernetes Engine의 배포 및 서비스는 설정에서 사용되는 기능입니다.

development .yaml에는 개발의 모든 세부 정보가 포함되어 있고 service.yaml에는 개발을 노출하는 세부 정보가 포함되어 있으며 이러한 파일은 value.yaml에서 이미지, 태그 및 포트와 같은 값을 가져옵니다.

*value.yaml*의 몇 가지 태그

replicaCount: 1

image:
  repository: gcr.io/project-for-video/project-for-video
  pullPolicy: Always
  # Overrides the image tag whose default is the chart appVersion.
  tag: "latest"

containerPort: 3100
readinessProbe: /
livenessProbe: /

serviceAccount:
  name: "project-for-video-dev"

service:
  type: LoadBalancer
  port: 80
  targetPort: 3100
  nodePort: 30001

네임스페이스는 여러 팀 또는 프로젝트에 걸쳐 많은 사용자가 분산된 환경에서 사용하기 위한 것입니다. ... 네임스페이스는 리소스 할당량을 통해 여러 사용자 간에 클러스터 리소스를 나누는 방법입니다. Kubernetes의 향후 버전에서는 동일한 **네임스페이스의 개체에 기본적으로 동일한 액세스 제어 정책이 적용됩니다.

GKE에 차트 배포


  • helm create {name of chart} 명령을 사용하여 helm 차트 생성
  • value.yaml의 값을 업데이트합니다. 이름, 이미지, 이미지 태그, 컨테이너 포트, 서비스 포트, 내부 포트(대상 포트) 업데이트
  • 개발 환경용 dev 및 prod-environment용 prod와 같은 별도의 분기가 있는 별도의 저장소로 푸시합니다.
    prod branch



  • dev branch


  • 네임스페이스 생성kubectl create namespace {NAMESPACE}

  • 클라우드에 복제 저장소.
  • 차트를 설치합니다.(포트가 다르기 때문에 dev 및 prod 분기 모두에서)helm install {name-of-chart} {address-of-chart} --namespace {NAMESPACE}

  • 테스트(응답을 확인하는 우편 배달부)

  • 중요 명령


  • helm cerete {NAME OF CHART}
  • helm delete {NAME OF CHART}
  • helm update{NAME OF CHART}
  • helm rollback 차트에 변경 사항이 있는 경우에만 업데이트됩니다.
  • kubectl get namespace --all
  • kubectl create namespace
  • kubectl delete namespace
  • 좋은 웹페이지 즐겨찾기