kubernetes实战篇之helm填坑与基本命令

其实前面安装部分我们已经分享一些互联网上其它网友分享的一些坑,本篇介绍helm的基本使用以及在使用过程中碰到的一些坑.

客户端版本和服务端版本不一致问题

有些朋友可能在使用helm init的时候直接复制页面上的命令,这样由于客户端和服务端版本不一致造成helm无法使用,解决办法在复制helm init 阿里云网址时把网址里面的版本更新为和客户端保持一致的版本.

阿里云镜像过旧

你可能按照上一节的操作最终成功安装了helm,但是在实际工作中你可能会发现,阿里云的helm镜像仓库过旧(这里仅仅是说helm仓库过旧,而不是其它仓库),很多包都没有,这就导致通过helm安装很多第三方工具时由于查找不到对应版本的chart而无法安装成功.下面给出几种解决办法

1) 删除阿里云的helm仓库

使用helm repo list查看是否有阿里云的镜像源,如果有则执行

helm repo remove stable helm repo remove incubator

来删除阿里镜像源,则默认镜像源他恢复到https://kubernetes-charts.storage.googleapis.com/,目前来看,这个地址是能访问的,但是不确定是否能一直稳定访问

2) 使用网友自制源

参考地址,你也可以按照说明自己搭建一个同步源.

如果使用作者的源,则只需要添加helm repo add stable https://burdenbear.github.io/kube-charts-mirror/即可

直到目前这个仓库还一直稳定更新

3) 使用azure源

上面的git仓库里,作者提到了可以傅azure镜像源

执行命令

helm repo add stable helm repo add incubator heml命令报错

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

基础命令

查找 helm search CHARTNAME

检查 helm inspect CHARTNAME

安装 helm install --name mem1 stable/memcached

获取状态信息 helm status mem1

列出 helm list [-a]

删除 helm delete [--purge] mem1

下载 helm fetch stable/redis

创建 helm create CHARTNAME

语法检测 helm lint CHARTNAME

打包 helm package CHARTNAME

显示状态 helm status NAME

示例操作1

查找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,目前还不是很多,日后会越来越多,强烈不建议执行此操作

示例操作2

列举出所有本机通过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 示例操作3

查看一个已经安装的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: http: paths: - backend: serviceName: exampleService servicePort: 80 path: / # This section is only required if TLS is to be enabled for the Ingress tls: - hosts: - 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

除了状态以外,还有简短说明以及示例信息

示例4

删除一个已经安装的chart

[root@k8s-master k8syml]# helm delete invisible-turkey release "invisible-turkey" deleted

关于打包的功能我们后面专门讲解,关于下载和修改我们下面通过一个完整实例来介绍

示例5

安装部署一个elk日志系统

1) 准备 charts

helm fetch stable/fluentd-elasticsearch

helm fetch stable/elasticsearch

helm fetch stable/kibana # kibana 要和 elasticsearch 版本一致

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwwjw.html