この記事では、インストールとKubernetesでクラスタを構成する方法をステップバイステップで教えてくれますhelm
し、アプリケーションを展開し、管理するためにそれを使用します。
前置条件
開始helm
前に、あなたは以下の条件を満たしている必要があります。
-
実行kubernetesクラスタ
-
kubernetesクラスタAPIあなたがから実行することができるはずのエンドポイント
Helm
マシンにアクセスします。 -
認証に使用kubectlクラスタは、クラスタ管理者権限を持っている必要があります。
ヘルムアーキテクチャ
インストールヘルム、[クライアント]
コマンドラインで次のコマンドを実行します。
curl -L https://git.io/get_helm.sh | bash
ヘルムパッケージをダウンロードする際に、国内ネットワーク上の理由として、失敗します。私はget_helm.shスクリプトとヘルムインストールパッケージのパッケージを持っている:抽出コードを:jrko
舵-v2.16.1-のLinux-amd64.tar.gz
[root@master helm]# bash get_helm.sh
Preparing to install helm and tiller into /usr/local/bin
helm installed into /usr/local/bin/helm
tiller installed into /usr/local/bin/tiller
Run 'helm init' to configure helm.
作成サービスアカウントは、ティラーに、クラスタ管理者権限を持っています
Tiller
ヘルムは、サーバー側のコンポーネントです。Tiller
Kubernetesがクラスタにインストールされ、Helm
使用するためにそれと対話するクライアントHelm charts
アプリケーションがデプロイされます。
Helm
管理は、クラスタリソースをK8S。したがって、我々は、クラスタインストールする必要がありkube-system
、コマンドスペースをtiller
必要な権限コンポーネントを追加します。
だから、次の手順を実行する必要があります。
- 名前を作成
tiller
Service Account
- 創造
tiller
のService Account
管理者権限を持つクラスタClusterRoleBinding
。
私たちは、YAMLファイルを追加しますService Account
とclusterRoleBinding
。
ファイルを作成helm-rbac.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
使用kubectlを作成しました:
kubectl apply -f helm-rbac.yam
初期ヘルム:展開ティラー
次のステップは、ヘルムを初期化することです。初期化するとHelm
、それは名前のKUBE-システムの名前空間を展開するtiller-deploy
展開します。
ヘルムを初期化するには、次のコマンドを使用します。
helm init --service-account=tiller --history-max 300
あなたが指定したインストールしたい場合はtiller
バージョンを、次のことができinit
コマンドを使用して--tiller-image
パラメータを指定するには、tiller
イメージアドレスを。すべての公共GoogleのGCRのレジストリで見つけることができるtiller
ドッキングウィンドウの画像。ネットワークは、ミラーアリの倉庫から引き出すことができる国内の理由による。つまりgcr.io/kubernetes-helm/tiller:v2.14.1
置き換えregistry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1
helm init --service-account=tiller --tiller-image=registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1 --history-max 300
あなたは、次の手順を実行した後:
[root@master helm]# helm init --service-account=tiller --tiller-image=registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1 --history-max 300
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.
To prevent this, run `helm init` with the --tiller-tls-verify flag.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation
そうでない場合パラメータ「--service-アカウント=ティラー」、次のエラーが発生します。
Error: no available release name found
あなたはkubectlビューKUBE-システムの名前空間を使用することができますtiller
展開を。
kubectl get deployment tiller-deploy -n kube-system
使用ヘルムデプロイアプリケーション
それでは、使用nginxのヘルムのデプロイアプリケーションを聞かせて。
次のコマンドを実行しhelm install
kubernetesクラスタにデプロイコマンドを、ingress nginx
。githubの倉庫をダウンロードしてくださいnginx-ingress helm chart
。
helm install stable/nginx-ingress --name nginx-ingress
次のコマンドを使用して確認することができますhelm chart
インストールされています。
helm ls
あなたは使用することができますdelete
コマンドだけ削除展開を。例えば:
helm delete nginx-ingress
クラスタヘルム(ティラー)から除去Kubernetes
あなたはkubernetesからクラスタを削除する場合はTiller
、次のコマンドを使用します。
helm reset
何らかの理由で、あなたはエラーが発生した場合、それを削除するために強制するには、次のコマンドを使用します。
helm reset --force
また、使用することができkubectl
、それを削除するコマンドを。
kubectl delete deployment tiller-deploy --namespace kube-system
著者について
著者:スープの小鉢、現在は元の数の公共維持愛、深刻な男の書き込み、「スープの私の小さなボウル、」記事のハードパワーを高めるために書いgolang、ドッキングウィンドウ、kubernetesおよびその他の知識の焦点は、あなたの注意を楽しみにして。転載注:ソースを示すようにしてください(注:公共の番号から:スープ、著者の私の小さなボウル:スープの小鉢)