系列目录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示例部分及命令部分大都是参考了此篇博客,并未进行详细验证