zoukankan      html  css  js  c++  java
  • Kubernetes Helm入门指南

    什么是Helm?这可不是暗黑破坏神里装备的名称:头盔,而是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理。我们Helm和Kubernetes的关系,我们可以理解成yum和CentOS,apt-get和Ubuntu的关系。

    Helm由两部分组成,客户端helm和服务端tiller。

    其中tiller运行在Kubernetes集群上,管理chart,而客户端helm就是一个命令行工具,可在本地运行,一般运行在持续集成/持续交付的服务器上 。

    下图是helm的架构图。

    我们现在就来试用下helm。

    首先安装helm客户端。

    下载helm执行文件的压缩包:

    wget -O helm.tar.gz https://storage.googleapis.com/kubernetes-helm/helm-v2.11.0-linux-amd64.tar.gz tar -xzf helm.tar.gz

    解压完毕后,将helm文件移到目录/usr/local/bin/helm下面:

    mv linux-amd64/helm /usr/local/bin/helm

    给这个文件加上执行权限:

    chmod +x /usr/local/bin/helm

    首先使用-namespace参数指定使用的namespace,我例子里的命名空间是part-0110:

    helm init --tiller-namespace part-0110 --service-account access

    helm init --tiller-namespace part-0110 --service-account access

    Creating /home/vagrant/.helm

    Creating /home/vagrant/.helm/repository

    Creating /home/vagrant/.helm/repository/cache

    Creating /home/vagrant/.helm/repository/local

    Creating /home/vagrant/.helm/plugins

    Creating /home/vagrant/.helm/starters

    Creating /home/vagrant/.helm/cache/archive

    Creating /home/vagrant/.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 /home/vagrant/.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.

    For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation

    Happy Helming!

    从helm的init命令输出,我们可以观察到,该命令生成了大量和helm server交互所必须的repository。

    现在可以使用helm version命令行参数查看helm客户端和服务器端的版本号:

    helm version --tiller-connection-timeout=5 --tiller-namespace part-0110

    vagrant@vagrant:~/.kube$ helm version --tiller-connection-timeout=5 --tiller-namespace part-0110

    Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}

    Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}

    使用命令helm repo list查看helm仓库列表:

    根据名称搜索helm chart:

    helm search chaoskube

    使用下面的命令行安装chart。命令行中的参数jerry可以根据需要改成你自己期望的名字。

    helm install --name jerry stable/chaoskube --set namespaces=part-0110 --set rbac.serviceAccountName=access --tiller-namespace part-0110 --debug

    下面是helm install命令的输出,供您参考:

    vagrant@vagrant:~/.kube$ helm install --name jerry stable/chaoskube --set namespaces=part-0110 --set rbac.serviceAccountName=access --tiller-namespace part-0110 --debug

    [debug] Created tunnel using local port: '36408'

    [debug] SERVER: "127.0.0.1:36408"

    [debug] Original chart version: ""

    [debug] Fetched stable/chaoskube to /home/vagrant/.helm/cache/archive/chaoskube-0.10.0.tgz

    [debug] CHART PATH: /home/vagrant/.helm/cache/archive/chaoskube-0.10.0.tgz

    NAME: jerry

    REVISION: 1

    RELEASED: Thu Nov 15 16:37:19 2018

    CHART: chaoskube-0.10.0

    USER-SUPPLIED VALUES:

    namespaces: part-0110

    rbac:

    serviceAccountName: access

    COMPUTED VALUES:

    affinity: {}

    annotations: null

    debug: false

    dryRun: true

    excludedDaysOfYear: null

    excludedTimesOfDay: null

    excludedWeekdays: null

    image: quay.io/linki/chaoskube

    imageTag: v0.10.0

    interval: 10m

    labels: null

    minimumAge: 0s

    name: chaoskube

    namespaces: part-0110

    nodeSelector: {}

    priorityClassName: ""

    rbac:

    create: false

    serviceAccountName: access

    replicas: 1

    resources: {}

    timezone: UTC

    tolerations: []

    HOOKS:

    MANIFEST:


    Source: chaoskube/templates/deployment.yaml

    apiVersion: apps/v1beta1

    kind: Deployment

    metadata:

    name: jerry-chaoskube

    labels:

    app: chaoskube

    heritage: "Tiller"

    release: "jerry"

    chart: chaoskube-0.10.0

    spec:

    replicas: 1

    selector:

    matchLabels:

    app: chaoskube

    release: jerry

    template:

    metadata:

    labels:

    app: chaoskube

    heritage: "Tiller"

    release: "jerry"

    chart: chaoskube-0.10.0

    spec:

    containers:

    • name: chaoskube

    image: quay.io/linki/chaoskube:v0.10.0

    args:

    • --interval=10m

    • --labels=

    • --annotations=

    • --namespaces=part-0110

    • --excluded-weekdays=

    • --excluded-times-of-day=

    • --excluded-days-of-year=

    • --timezone=UTC

    • --minimum-age=0s

    resources:

    {}

    serviceAccountName: "access"

    LAST DEPLOYED: Thu Nov 15 16:37:19 2018

    NAMESPACE: part-0110

    STATUS: DEPLOYED

    RESOURCES:

    ==> v1beta1/Deployment

    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE

    jerry-chaoskube 1 1 1 0 2s

    ==> v1/Pod(related)

    NAME READY STATUS RESTARTS AGE

    jerry-chaoskube-6689695476-kchtn 0/1 ContainerCreating 0 1s

    NOTES:

    chaoskube is running and will kill arbitrary pods every 10m.

    You can follow the logs to see what chaoskube does:

    POD=$(kubectl -n part-0110 get pods -l='release=jerry-chaoskube' --output=jsonpath='{.items[0].metadata.name}')

    kubectl -n part-0110 logs -f $POD

    You are running in dry-run mode. No pod is actually terminated.

    使用helm list命令,现在就能查看到刚才安装的名为jerry的chart了。

    helm list --tiller-namespace part-0110

    使用helm命令查看这个chart的明细(类似kubectl describe pod XXX )

    helm status jerry --tiller-namespace part-0110

    上图也显示了自动生成的pod名称为jerry-chaoskube-6689695476-kchtn,可以用kubectl log命令查看其运行日志:

    kubectl log jerry-chaoskube-6689695476-kchtn

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    【转载】Modelsim之 DO文件简介
    【原创】Quartus与Modelsim的联合仿真及脚本
    【原创】Quartus II 简单设计流程
    【原创】Modelsim仿真简单流程
    【原创】静态时序分析整理一
    【原创】DC的一些命令
    【转载】建立时间与保持时间
    linux 创建链接命令 ln -s 软链接
    Vim常用命令
    gvim查找与替换命令
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/9998352.html
Copyright © 2011-2022 走看看