Использование Helm в автономном режиме

Среда

[root@kubernetes-master-001 centos]# helm version
Client: &version.Version{SemVer:"v2.9.0", GitCommit:"f6025bb9ee7daf9fee0026541c90a6f557a3e0bc", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.9.0", GitCommit:"f6025bb9ee7daf9fee0026541c90a6f557a3e0bc", GitTreeState:"clean"}

[root@kubernetes-master-001 centos]# cat /etc/*-release | tail -n 1
CentOS Linux release 7.4.1708 (Core)

Вопрос

Я пытаюсь настроить Helm в автономной среде, но застрял.

Кажется, я успешно прошел этап init , но любой вызов install завершается ошибкой:

[root@kubernetes-master-001 centos]# export HELM_HOME=/root/.helm
[root@kubernetes-master-001 centos]# helm init --service-account tiller --wait -i $local_registry/kubernetes-helm/tiller:v2.9.0 --skip-refresh
Creating /root/.helm
Creating /root/.helm/repository
Creating /root/.helm/repository/cache
Creating /root/.helm/repository/local
Creating /root/.helm/plugins
Creating /root/.helm/starters
Creating /root/.helm/cache/archive
Creating /root/.helm/repository/repositories.yaml
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
Adding local repo with URL: http://127.0.0.1:8879/charts
$HELM_HOME has been configured at /root/.helm.
Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation
Happy Helming!
[root@kubernetes-master-001 centos]# helm install $local_HTTP_server/nginx-ingress-869c634517dbeb94c4a759fcfb69c44da38007ed.tgz --debug --name my-nginx --set rbac.create=true
[debug] Created tunnel using local port: '34825'
[debug] SERVER: "127.0.0.1:34825"
[debug] Original chart version: ""
Error: no cached repo found. (try 'helm repo update'). open /root/.helm/repository/cache/stable-index.yaml: no such file or directory

Это то, что можно найти в $ HELM_HOME :

[root@kubernetes-master-001 centos]# find "$HELM_HOME" -type f
/root/.helm/repository/local/index.yaml
/root/.helm/repository/repositories.yaml

Кто-нибудь видит решение этой проблемы?

2
задан 18 September 2018 в 19:34
3 ответа

Итак, на основе этого комментария на github я выполнил (грязный) обходной путь:

файл $ HELM_HOME / repository / local / index.yaml был создан процессом helm init .

[root@kubernetes-master-001 centos]# cat "$HELM_HOME/repository/local/index.yaml"
apiVersion: v1
entries: {}
generated: 2018-06-25T11:48:14.734541008Z

Я скопировал его @ $ HELM_HOME / repository / cache / stable-index.yaml :

cp "$HELM_HOME/repository/local/index.yaml" "$HELM_HOME/repository/cache/stable-index.yaml"

и после этого он работал нормально :

[root@kubernetes-master-001 centos]# helm install $local_HTTP_server/nginx-ingress-869c634517dbeb94c4a759fcfb69c44da38007ed.tgz --debug --name my-nginx --set rbac.create=true
[debug] Created tunnel using local port: '42893'
[debug] SERVER: "127.0.0.1:42893"
[debug] Original chart version: ""
[debug] Fetched $local_HTTP_server/nginx-ingress-869c634517dbeb94c4a759fcfb69c44da38007ed.tgz to /root/.helm/cache/archive/nginx-ingress-869c634517dbeb94c4a759fcfb69c44da38007ed.tgz
[debug] CHART PATH: /root/.helm/cache/archive/nginx-ingress-869c634517dbeb94c4a759fcfb69c44da38007ed.tgz
NAME:   my-nginx
REVISION: 1
RELEASED: Mon Jun 25 11:49:27 2018
CHART: nginx-ingress-0.20.3
. . .
. . .
. . .
LAST DEPLOYED: Mon Jun 25 11:49:27 2018
NAMESPACE: default
STATUS: DEPLOYED
. . .
. . .
. . .
0
ответ дан 3 December 2019 в 13:57
helm init --client-only --skip-refresh

На этом шаге будет установлена ​​локальная установка helm, а не tiller.

Следующим шагом будет загрузка образа tiller в реестр докеров.

tiller image: gcr.io/kubernetes-helm/tiller:v2.11.0

Если у вас еще не настроен частный реестр докеров , в качестве альтернативы вы также можете скопировать образ докера румпеля на все узлы.

Тег образа румпеля зависит от версии устанавливаемого руля. В моем случае я устанавливал helm 2.11.0

Далее вам нужно сделать:

helm init

Это установит румпель на один из узлов.

Затем вам нужно создать служебную учетную запись для вашего стручка румпеля и назначить это роль администратора кластера.

Создайте файл rbac_service_account.yaml с приведенным ниже содержимым

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

Затем вам нужно просто применить учетную запись службы и обновить tiller pod.

kubectl apply -f rbac_service_account.yaml

helm init --service-account tiller --upgrade
0
ответ дан 3 December 2019 в 13:57

Используйте параметр - tiller-image в init , чтобы указать на ваш частный реестр.

Как описано на https: //helm.sh/docs/install/#easy-in-cluster-installation[1236 visible

0
ответ дан 3 December 2019 в 13:57

Теги

Похожие вопросы