Helm v3에 대해 집어넣은 부분 정리

Helm이 최근 (2019/11/13) 주요 버전을 올렸습니다.



Helm v3 released: htps : // 에 lm. sh/bぉg/에 lm-3-레아세 d/

조사한 배경



필요에 육박해 Helm을 사용하려고 했는데, 각 사이트에 써 있는 Helm 커멘드가 잘 움직이지 않는다
이전 Helm을 사용한 적이 있었기 때문에, "처음에는 tiller 넣기 위해 helm init이야"라는 곳에서 집착했다.
helm init
~~helmのヘルプが長々と表示される~~

Usage:
  helm [command]

Available Commands:
  completion  Generate autocompletions script for the specified shell (bash or zsh)
  create      create a new chart with the given name
  dependency  manage a chart's dependencies
  env         Helm client environment information
  get         download extended information of a named release
  help        Help about any command
  history     fetch release history
  install     install a chart
  lint        examines a chart for possible issues
  list        list releases
  package     package a chart directory into a chart archive
  plugin      install, list, or uninstall Helm plugins
  pull        download a chart from a repository and (optionally) unpack it in local directory
  repo        add, list, remove, update, and index chart repositories
  rollback    roll back a release to a previous revision
  search      search for a keyword in charts
  show        show information of a chart
  status      displays the status of the named release
  template    locally render templates
  test        run tests for a release
  uninstall   uninstall a release
  upgrade     upgrade a release
  verify      verify that a chart at the given path has been signed and is valid
  version     print the client version information


"helm init가 없다...그렇다면..."

Helm v2의 주요 변경 사항 (포함되지 않음)



tiller가 chart와 configuration을 release로 관리해 줄 거라고 생각했습니다.
다만, 아래의 릴리스 노트를 보면, 「tiller의 주목적은 tiller 없이 실현할 수 있었다」라고 하고, tiller가 필요없는 아이가 된 것 같습니다.
Removal of Tiller : htps : // / lm. sh / 두 cs / 후 q / # 레모 ゔ ぁ

릴리즈 이름이 네임스페이스별로 끈다.



지금까지는 nemaspace가 다르더라도 같은 release 이름을 사용할 수 없다는 제약이 있어 괴로웠다
그러나 릴리즈가 네임 스페이스 범위로 제한되기 때문에 네임 스페이스마다 같은 이름의 릴리즈를 가질 수있게되었습니다.
물론 다른 네임스페이스에 있는 release를 아래와 같이 참조할 수도 있다.
helm list --namespace foo

Helm 설치 및 설정



helm의 github 저장소을보고 저장소를 추가했습니다.

helm 설치


brew install kubernetes-helm

차트 검색을 위한 리포지토리 설정


helm repo add stable https://kubernetes-charts.storage.googleapis.com/ 

알맞은 namespace 만들기


kubectl create namespace helm-test

적당한 chart (여기에서는 prometheus)의 취득


$helm install stable/prometheus --generate-name
NAME: prometheus-1573980318
LAST DEPLOYED: Sun Nov 17 17:45:23 2019
NAMESPACE: helm-test
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The Prometheus server can be accessed via port 80 on the following DNS name from within your cluster:
prometheus-1573980318-server.helm-test.svc.cluster.local


Get the Prometheus server URL by running these commands in the same shell:
  export POD_NAME=$(kubectl get pods --namespace helm-test -l "app=prometheus,component=server" -o jsonpath="{.items[0].metadata.name}")
  kubectl --namespace helm-test port-forward $POD_NAME 9090


The Prometheus alertmanager can be accessed via port 80 on the following DNS name from within your cluster:
prometheus-1573980318-alertmanager.helm-test.svc.cluster.local


Get the Alertmanager URL by running these commands in the same shell:
  export POD_NAME=$(kubectl get pods --namespace helm-test -l "app=prometheus,component=alertmanager" -o jsonpath="{.items[0].metadata.name}")
  kubectl --namespace helm-test port-forward $POD_NAME 9093
#################################################################################
######   WARNING: Pod Security Policy has been moved to a global property.  #####
######            use .Values.podSecurityPolicy.enabled with pod-based      #####
######            annotations                                               #####
######            (e.g. .Values.nodeExporter.podSecurityPolicy.annotations) #####
#################################################################################


The Prometheus PushGateway can be accessed via port 9091 on the following DNS name from within your cluster:
prometheus-1573980318-pushgateway.helm-test.svc.cluster.local


Get the PushGateway URL by running these commands in the same shell:
  export POD_NAME=$(kubectl get pods --namespace helm-test -l "app=prometheus,component=pushgateway" -o jsonpath="{.items[0].metadata.name}")
  kubectl --namespace helm-test port-forward $POD_NAME 9091

For more information on running Prometheus, visit:
https://prometheus.io/

동작 확인



위 출력에 작성된대로 명령 실행
export POD_NAME=$(kubectl get pods --namespace helm-test -l "app=prometheus,component=server" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace helm-test port-forward $POD_NAME 9090

localhost : 9090에 액세스하면 Prometheus를 볼 수 있습니다.


추가



Helm v3에서 CRD 사용할 수없는 버그를 만나십시오.



시험에 Prometheus Operator를 넣으려고했는데 다음과 같이 화가났다.
helm install  stable/prometheus-operator --generate-name
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(MutatingWebhookConfiguration.webhooks[0].clientConfig): missing required field "caBundle" in io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig

아래의 Issue가 올라가서 Helm v2로 돌아가려고 생각했습니다.
htps : // 기주 b. 코 m/다타우에레/아 m바사도 r/이스에 s/2057

좋은 웹페이지 즐겨찾기