系列目錄html
其實前面安裝部分咱們已經分享一些互聯網上其它網友分享的一些坑,本篇介紹helm的基本使用以及在使用過程當中碰到的一些坑.nginx
有些朋友可能在使用helm init
的時候直接複製頁面上的命令,這樣因爲客戶端和服務端版本不一致形成helm沒法使用,解決辦法在複製helm init 阿里雲網址
時把網址裏面的版本更新爲和客戶端保持一致的版本.git
你可能按照上一節的操做最終成功安裝了helm,可是在實際工做中你可能會發現,阿里雲的helm鏡像倉庫過舊(這裏僅僅是說helm倉庫過舊,而不是其它倉庫),不少包都沒有,這就致使經過helm安裝不少第三方工具時因爲查找不到對應版本的chart而沒法安裝成功.下面給出幾種解決辦法github
1) 刪除阿里雲的helm倉庫redis
使用helm repo list
查看是否有阿里雲的鏡像源,若是有則執行docker
helm repo remove stable helm repo remove incubator
來刪除阿里鏡像源,則默認鏡像源他恢復到https://kubernetes-charts.storage.googleapis.com/
,目前來看,這個地址是能訪問的,可是不肯定是否能一直穩定訪問centos
2) 使用網友自制源api
參考地址,你也能夠按照說明本身搭建一個同步源.bash
若是使用做者的源,則只須要添加helm repo add stable https://burdenbear.github.io/kube-charts-mirror/
便可app
直到目前這個倉庫還一直穩定更新
3) 使用azure源
上面的git倉庫裏,做者提到了能夠傅azure鏡像源
執行命令
helm repo add stable http://mirror.azure.cn/kubernetes/charts/ helm repo add incubator http://mirror.azure.cn/kubernetes/charts-incubator/
helm在執行的時候偶爾會有命令報錯,大概是no available pod
,不知道其它朋友是否遇到過這個問題,反正我是遇到過很多,實際發現這個錯誤不影響,過一會就會恢復正常
[centos@k8s-master ~]$ kubectl get deploy -n=kube-system NAME READY UP-TO-DATE AVAILABLE AGE coredns 2/2 2 2 42d kubernetes-dashboard 0/1 1 0 41d tiller-deploy 0/1 1 0 15d
若是觀賽它的deploy,時爾ready狀態會變爲0
查找jenkins chart
[root@k8s-master k8syml]# helm search jenkins NAME CHART VERSION APP VERSION DESCRIPTION incubator/jenkins-operator 0.1.12 0.1.12 A Helm chart for Kubernetes Jenkins Operator stable/jenkins 1.1.3 lts Open source continuous integration server. It supports mu...
helm search若是不指定參數則默認列倉庫的全部charts,目前還不是不少,往後會愈來愈多,強烈不建議執行此操做
列舉出全部本機經過helm安裝的charts
[root@k8s-master k8syml]# helm list NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE invisible-turkey 1 Mon Apr 22 17:39:14 2019 FAILED nginx-ingress-0.21.1 0.14.0 jx kubernetes-dashboard 1 Thu Mar 14 09:06:25 2019 DEPLOYED kubernetes-dashboard-1.2.0 1.10.1 kube-system
查看一個已經安裝的chart的的狀態
[root@k8s-master k8syml]# helm status invisible-turkey LAST DEPLOYED: Mon Apr 22 17:39:14 2019 NAMESPACE: jx STATUS: FAILED NOTES: The nginx-ingress controller has been installed. It may take a few minutes for the LoadBalancer IP to be available. You can watch the status by running 'kubectl --namespace get services -o wide -w invisible-turkey-nginx-ingress-controller' An example Ingress that makes use of the controller: apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx name: example namespace: foo spec: rules: - host: www.example.com http: paths: - backend: serviceName: exampleService servicePort: 80 path: / # This section is only required if TLS is to be enabled for the Ingress tls: - hosts: - www.example.com secretName: example-tls If TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided: apiVersion: v1 kind: Secret metadata: name: example-tls namespace: foo data: tls.crt: <base64 encoded cert> tls.key: <base64 encoded key> type: kubernetes.io/tls
除了狀態之外,還有簡短說明以及示例信息
刪除一個已經安裝的chart
[root@k8s-master k8syml]# helm delete invisible-turkey release "invisible-turkey" deleted
關於打包的功能咱們後面專門講解,關於下載和修改咱們下面經過一個完整實例來介紹
安裝部署一個elk日誌系統
1) 準備 charts
helm fetch stable/fluentd-elasticsearch
helm fetch stable/elasticsearch
helm fetch stable/kibana # kibana 要和 elasticsearch 版本一致
下載下來的內容是一個壓縮包,下載的位置是當前位置,所以你想要把它保存到指定目錄須要先進入指定目錄,或者在當前位置下載後解壓,而後移動到指定位置
2) 解壓修改各 values.yaml 配置文件
前面咱們說過,不少鏡像都存儲在gcr.io上,可是在國內正常狀況下是不能訪問的,咱們能夠把gcr.io修改成
docker.io/mirrorgooglecontainers/
這是谷歌鏡像在dockerhub上的倉庫,目前dockerhub在國內還算能正常訪問,可是速度不太理想.你們也能夠參照個人其它文章,把鏡像源切到阿里雲,或者提早先把須要的鏡像拉取下來.
3) 安裝各組件
kubect create ns efk # 建立名稱空間
helm install --name els1 --namespace=efk -f ./elasticsearch/values.yaml stable/elasticsearch # 記錄輸出結果中地址,相似 els1-elasticsearch-client.efk.svc.cluster.local+
helm install --name flu1 --namespace=efk -f ./fluentd-elasticsearch/values.yaml stable/fluentd-elasticsearch
helm install --name kib1 --namespace=efk -f ./kibana/values.yaml stable/kibana
4) 訪問 Kibana
查看端口:kubectl get svc -n efk -l app=kibana
訪問:http://IP:Port,無帳號密碼
以上elk示例部分及命令部分大都是參考了此篇博客,並未進行詳細驗證