From 1e25610ffa8bd539108191363cfa2717848b5608 Mon Sep 17 00:00:00 2001 From: gjmzj Date: Mon, 10 Jun 2019 23:55:33 +0800 Subject: [PATCH] update helm v2.14.1 --- docs/guide/helm.md | 14 ++++---------- down/download.sh | 8 ++++---- roles/helm/defaults/main.yml | 3 ++- roles/helm/helm.yml | 2 +- roles/helm/tasks/main.yml | 9 ++++++--- 5 files changed, 17 insertions(+), 19 deletions(-) diff --git a/docs/guide/helm.md b/docs/guide/helm.md index e4f84a3..4117a3c 100644 --- a/docs/guide/helm.md +++ b/docs/guide/helm.md @@ -6,13 +6,13 @@ ## 安全安装 helm(在线) -在helm客户端和tiller服务器间建立安全的SSL/TLS认证机制;tiller服务器和helm客户端都是使用同一CA签发的`client cert`,然后互相识别对方身份。建议通过本项目提供的`ansible role`安装,符合官网上介绍的安全加固措施,在delpoy节点运行: +以下步骤以 helm/tiller 版本 v2.14.1 为例,在helm客户端和tiller服务器间建立安全的SSL/TLS认证机制;tiller服务器和helm客户端都是使用同一CA签发的`client cert`,然后互相识别对方身份。建议通过本项目提供的`ansible role`安装,符合官网上介绍的安全加固措施,在ansible控制端运行: ``` bash -# 1.如果已安装非安全模式,使用 helm reset 清理 -# 2.配置默认helm参数 vi /etc/ansible/roles/helm/defaults/main.yml -# 3.执行安装 +# 1.配置默认helm参数 vi /etc/ansible/roles/helm/defaults/main.yml +# 2.执行安装 $ ansible-playbook /etc/ansible/roles/helm/helm.yml ``` +- 注意:默认仅在第一个master节点初始化helm客户端,如果需要在其他节点初始化helm客户端,请修改 roles/helm/helm.yml 文件的 hosts 定义,然后再次执行`ansible-playbook /etc/ansible/roles/helm/helm.yml`即可 简单介绍下`/roles/helm/tasks/main.yml`中的步骤 @@ -23,12 +23,6 @@ $ ansible-playbook /etc/ansible/roles/helm/helm.yml - 5-安全安装tiller到集群,tiller服务启用tls验证 - 6-配置helm客户端使用tls方式与tiller服务端通讯 -### 注意因使用了TLS认证,所以helm命令执行分以下两种情况 - -- 执行与tiller服务有关的命令,比如 `helm ls` `helm version` `helm install`等需要加`--tls`参数 -- 执行其他命令,比如`helm search` `helm fetch` `helm home`等不需要加`--tls` -- helm v2.11.0及以上版本,启用环境变量 HELM_TLS_ENABLE=true,可以都不用加 --tls 参数 - ## 安全安装 helm(离线) 在内网环境中,由于不能访问互联网,无法连接repo地址,使用上述的在线安装helm的方式会报错。因此需要使用离线安装的方法来安装。 离线安装步骤: diff --git a/down/download.sh b/down/download.sh index 80d6927..683f3b1 100644 --- a/down/download.sh +++ b/down/download.sh @@ -3,11 +3,11 @@ # It's suggested to download the entire *.tar.gz at https://pan.baidu.com/s/1c4RFaA # example releases -K8S_VER=v1.13.4 -ETCD_VER=v3.3.8 -DOCKER_VER=18.09.2 +K8S_VER=v1.13.7 +ETCD_VER=v3.3.10 +DOCKER_VER=18.09.6 CNI_VER=v0.7.5 -DOCKER_COMPOSE_VER=1.18.0 +DOCKER_COMPOSE_VER=1.23.2 HARBOR_VER=v1.5.4 CONTAINERD_VER=1.2.6 diff --git a/roles/helm/defaults/main.yml b/roles/helm/defaults/main.yml index 890e8b4..7b69fe5 100644 --- a/roles/helm/defaults/main.yml +++ b/roles/helm/defaults/main.yml @@ -2,7 +2,8 @@ helm_namespace: kube-system helm_cert_cn: helm001 tiller_sa: tiller tiller_cert_cn: tiller001 -tiller_image: jmgao1983/tiller:v2.12.3 +tiller_image: easzlab/tiller:v2.14.1 repo_url: https://kubernetes-charts.storage.googleapis.com +history_max: 5 # 如果默认官方repo 网络访问不稳定可以使用如下的阿里云镜像repo #repo_url: https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts diff --git a/roles/helm/helm.yml b/roles/helm/helm.yml index 7965c45..bae24da 100644 --- a/roles/helm/helm.yml +++ b/roles/helm/helm.yml @@ -1,3 +1,3 @@ -- hosts: deploy +- hosts: "{{ groups['kube-master'][0] }}" roles: - helm diff --git a/roles/helm/tasks/main.yml b/roles/helm/tasks/main.yml index 4489c4f..d116c5e 100755 --- a/roles/helm/tasks/main.yml +++ b/roles/helm/tasks/main.yml @@ -22,14 +22,16 @@ -profile=kubernetes {{ tiller_cert_cn }}-csr.json | {{ bin_dir }}/cfssljson -bare {{ tiller_cert_cn }}" - name: 准备rbac配置 - template: src=helm-rbac.yaml.j2 dest=./helm-rbac.yaml + template: src=helm-rbac.yaml.j2 dest=/opt/kube/helm-rbac.yaml - name: 在k8s上创建rbac - shell: "{{ bin_dir }}/kubectl apply -f ./helm-rbac.yaml" + shell: "{{ bin_dir }}/kubectl apply -f /opt/kube/helm-rbac.yaml" ignore_errors: true + run_once: true - name: 安装tiller shell: "{{ bin_dir }}/helm init \ + --history-max {{ history_max }} \ --tiller-tls \ --tiller-tls-verify \ --tiller-tls-cert {{ ca_dir }}/{{ tiller_cert_cn }}.pem \ @@ -38,7 +40,8 @@ --service-account {{ tiller_sa }} \ --tiller-namespace {{ helm_namespace }} \ --tiller-image {{ tiller_image }} \ - --stable-repo-url {{ repo_url }}" + --stable-repo-url {{ repo_url }} \ + --upgrade" ignore_errors: true - name: 配置helm客户端