精华内容
下载资源
问答
  • helm部署仓库中没有的包Before we dive into the Helm package manager, I'm going to explain some key concepts to deploying any application anywhere. I'll also give you a brief introduction to Kubernetes ...

    helm部署仓库中没有的包

    Before we dive into the Helm package manager, I'm going to explain some key concepts to deploying any application anywhere. I'll also give you a brief introduction to Kubernetes terminology.

    在深入研究Helm软件包管理器之前 ,我将解释一些在任何地方部署任何应用程序的关键概念。 我还将为您简要介绍Kubernetes术语

    什么是Kubernetes? (What is Kubernetes?)

    Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications

    Kubernetes(K8s)是一个开源系统,用于自动化容器化应用程序的部署,扩展和管理

    Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications kubernetes.io

    Kubernetes(K8s)是一个开源系统,用于自动化容器化应用程序kubernetes.io的部署,扩展和管理。

    Now you might be asking yourself, "Well, what does that mean?"

    现在您可能会问自己:“嗯,那是什么意思?”

    Kubernetes is essentially a very nice set of APIs for deploying, managing, and scaling applications.

    Kubernetes本质上是一组非常好的API,用于部署,管理和扩展应用程序。

    The applications are packaged with Docker, and then the logic surrounding the deployment of the application is expressed using Helm templates. The templates themselves are instructions that are then run using the Kubernetes API.

    应用程序与Docker打包在一起,然后使用Helm模板表达围绕应用程序部署的逻辑。 模板本身就是使用Kubernetes API运行的指令。

    There are a ton of Helm packages already created to take care of your application deployment needs!

    已经创建了大量的Helm软件包来满足您的应用程序部署需求!

    I like to think of Kubernetes + Helm as a one stop shop for my application DevOps needs.

    我喜欢将Kubernetes + Helm视为满足我的应用程序DevOps需求的一站式服务。

    有趣的事实时间! (Fun Fact Time!)

    The entire container ecosystem, including Docker, has a very fun nautical theme. Docker has whales, Kubernetes has pods (of whales), and its logo looks like the steering portion of a ship, and Helm is the helm of a ship.

    包括Docker在内的整个容器生态系统都有一个非常有趣的航海主题。 Docker有一条鲸鱼,Kubernetes有(鲸鱼)吊舱,其徽标看起来像是船舶的转向部分,Helm是船舶的头盔。

    Aren't they cute?

    他们不是很可爱吗?

    在Kubernetes上部署应用程序 (Deploying an Application on Kubernetes)

    First of all, no matter where you deploy an application there are going to be some things that remain the same anywhere, and I do mean anywhere! ;-) Whether you are deploying to your laptop, a remote server, an AWS EC2 instance, High Performance Computing systems, or Kubernetes, the underlying concepts do not change.

    首先,无论您将应用程序部署在何处,都会在某些地方保持相同而我的意思是在任何地方! ;-)无论您是部署到便携式计算机,远程服务器,AWS EC2实例,高性能计算系统还是Kubernetes,其基本概念都不会改变。

    I think of pretty much everything, tech concepts in particular, as a series of layers. Once you understand what those fundamental layers are you can get cooking.

    我将几乎所有内容(尤其是技术概念)视为一系列层次。 了解了这些基本层之后,您就可以开始烹饪了。

    应用层 (Application Layers)

    These are:

    这些是:

    GeneralKubernetes
    Data LayerPVC or Persistent Volume Claims
    Application LayerPods
    ServicesSVC
    一般 Kubernetes
    资料层 PVC或永久体积声明
    应用层 豆荚
    服务 SVC

    Let's take these on one at a time.

    让我们一次来处理这些。

    Data Layer / Persistent Volume Claims (PVCs)

    数据层/永久体积声明(PVC)

    This is nice and straight forward. When you need to persist data you persist it to a filesystem. This can be local storage or some sort of networked file system (NFS). If you are using a database the database also eventually persists to a filesystem.

    这很好,很简单。 当您需要保留数据时,可以将其保留到文件系统中。 这可以是本地存储,也可以是某种网络文件系统(NFS)。 如果您使用的是数据库,则数据库最终还将持久保存到文件系统中。

    Application Layer / Pods

    应用层/豆荚

    The application layer is what we typically think of in a deployment. Its the part we apt-get install, npm run or docker run. An application could be an NGINX web server, a Python or Node.js app, or a Spark application to name a few.

    应用层是我们通常在部署中所想到的。 它是我们apt-get installnpm rundocker run 。 应用程序可以是NGINX Web服务器,Python或Node.js应用程序或Spark应用程序。

    Applications are either Kubernetes Deployments or Stateful Set, depending on whether or not they persist data (or have a state).

    应用程序是Kubernetes 部署还是状态集 ,具体取决于它们是否保留数据(或具有状态)。

    A MySQL database would be an example of a Stateful application. It needs to keep track of information about itself.

    MySQL数据库将是有状态应用程序的示例。 它需要跟踪有关自身的信息。

    An NGINX server would be a Kubernetes Deployment, because it does not need to keep track of any information about itself — it is stateless.

    NGINX服务器将是Kubernetes部署,因为它不需要跟踪有关其自身的任何信息-它是无状态的

    Services Layer / SVC

    服务层/ SVC

    The services layer is where we expose our Application to the outside world. This is generally accomplished by saying "Hey, I have an app running on this port". You might have run these directly, or done something like a proxy pass in NGINX or Apache.

    服务层是我们将应用程序暴露给外界的地方。 通常可以通过说“嘿,我在此端口上运行一个应用程序”来完成此操作。 您可能已经直接运行了它们,或者在NGINX或Apache中做了类似代理传递的操作。

    站点可靠性层 (Site Reliability Layers)

    Site reliability is our ability to confidently say our application is up, running, and will probably stay up and running!

    站点可靠性是我们自信地说我们的应用程序已启动,正在运行,并且可能会继续运行的能力!

    To be real, we want an API to essentially do this. 😜

    确实,我们希望API能够做到这一点。 😜

    XKCD - Hard Reboot

    XKCD-硬重启

    XKCD Hard Reboot
    GeneralKubernetes
    Monitoringmetrics-server
    Scaling (or Load Balancing)Horizontal Pod Autoscaler (HPA)
    Service RulesContainer specs
    一般 Kubernetes
    监控方式 指标服务器
    扩展(或负载平衡) 水平荚自动缩放器(HPA)
    服务规则 容器规格

    Monitoring Layer / Metrics Server

    监控层/度量服务器

    The monitoring layer answers the question "How is our app doing"? Ideally it would answer questions like "How much CPU is left on that machine?" and "Are we out of memory yet"?

    监视层回答问题“我们的应用程序如何运行”? 理想情况下,它将回答诸如“该计算机上还剩多少CPU?”之类的问题。 和“我们内存不足了吗”?

    Scaling Layer / HPA

    缩放层/ HPA

    Have you ever had an application that worked great until too many people started using it at once? You take care of this by scaling the instances of your application up or down.

    在有太多人一次使用它之前,您是否曾经有过一款性能良好的应用程序? 您可以通过向上或向下缩放应用程序实例来解决此问题。

    With web applications, you'll often see the term load balancing, too. This functionality is built into many process managers and https servers such as PM2 and Gunicorn.

    在Web应用程序中,您也经常会看到术语负载平衡。 许多流程管理器和https服务器(例如PM2Gunicorn)都内置了此功能。

    In Kubernetes you accomplish this with a Horizontal Pod Autoscaler, or HPA, which you give specific rules for how to scale up or down.

    在Kubernetes中,您可以使用Horizo​​ntal Pod Autoscaler或HPA来完成此任务,您可以为其指定具体的缩放比例规则。

    Service Rules Layer

    服务规则层

    Have you ever wanted to automate when / how your application should restart? Maybe you want it to restart 3 times and then give up. Or maybe you want it to restart, but not right away.

    您是否曾经想过何时/如何重启应用程序进行自动化? 也许您希望它重新启动3次,然后放弃。 或者,也许您希望它重新启动,但不立即启动。

    Give it some time! You may also want some objective measure to test whether or not you application is up and running.

    给它一点时间! 您可能还需要一些客观的措施来测试您的应用程序是否已启动并正在运行。

    在Kubernetes上部署应用程序 (Deploying Applications on Kubernetes)

    Kubernetes applications can be deployed either through the CLI, or by writing YAML templates that describe the various PVCs, Pods (whether they are Deployments or Stateful sets), and Service (SVC) layers.

    Kubernetes应用程序可以通过CLI进行部署,也可以通过编写描述各种PVC,Pod(无论是Deployment还是Stateful集)和Service(SVC)层的YAML模板进行部署。

    头盔包管理器 (The Helm Package Manager)

    Helm is the best way to find, share, and use software built for Kubernetes.

    Helm是查找,共享和使用为Kubernetes构建的软件的最佳方法。

    Helm is the best way to find, share, and use software built for Kubernetes. https://helm.sh/

    Helm是查找,共享和使用为Kubernetes构建的软件的最佳方法。 https://helm.sh/

    The Helm package manager allows us to wire up complex Kubernetes deployments into a single package, that can be installed with a single command.

    Helm软件包管理器使我们能够将复杂的Kubernetes部署连接到一个软件包中,该软件包可以使用单个命令进行安装。

    Helm uses a templating language on top of Kubernetes YAML definitions to allow more versatility to our deployments.

    Helm在Kubernetes YAML定义之上使用了模板语言,以使我们的部署更具通用性。

    Probably the most important point to note with Helm is that it has been widely accepted by the community. This means that there are lots of resources for using Helm, getting started, and also oodles of preconfigured Helm Charts!

    Helm可能要注意的最重要一点是,它已被社区广泛接受。 这意味着有很多使用Helm的资源,入门指南以及大量预配置的Helm Charts!

    It's very rare for me to ever have to create a Helm package completely from scratch. I can nearly always find a good starting point from one or more of the Helm charts that are already available.

    对于我而言,完全从零开始创建Helm软件包非常罕见。 我几乎总是可以从一个或多个可用Helm图表中找到一个良好的起点。

    在Kubernetes上部署NGINX (Deploy NGINX on Kubernetes)

    First, let's talk about a base NGINX deployment without Helm.

    首先,让我们谈谈没有Helm的基本NGINX部署。

    As you can see, there is a lot of stuff to keep track of and we probably wouldn't be typing this by hand. That is where the Helm package manager comes in, but it's good to take a look to know what is happening first! ;-)

    如您所见,有很多东西需要跟踪,我们可能不会手工输入。 这就是Helm软件包管理器的用武之地,但是最好先了解一下发生了什么! ;-)

    Now let's break down the different parts of the Kubernetes Deployment definition.

    现在让我们分解一下Kubernetes部署定义的不同部分。

    Metadata

    元数据

    I want to very briefly touch on the labels. Only briefly, because chances are you will be fine with the defaults and not need to touch them.

    我想非常简短地触摸一下labels 。 仅简要介绍一下,因为您可以使用默认设置,而无需触摸它们。

    One of the goals of Kubernetes is that it should abstract the actual physical server away. You shouldn't usually have to care if your app is running on node1 or node2. Of course at some point you do care, and then you will start to get into labels.

    Kubernetes的目标之一是应该将实际的物理服务器抽象出来。 通常,您不必关心您的应用程序是在node1还是node2上运行。 当然,在某些时候您确实会在意,然后您将开始涉足标签。

    Until then, don't worry about them and just stick with the defaults.

    在此之前,请不要担心它们,而只需遵循默认值即可。

    Containers

    货柜

    This is the part of the application that will be most relevant to you when you are deploying applications. You need to define your containers.

    这是应用程序中与您部署应用程序最相关的部分。 您需要定义容器。

    A single Deployment Pod can have many containers. That container has, at the very least a name, a repo, and a tag:

    单个Deployment Pod可以具有多个容器。 该容器至少具有一个name ,一个repo和一个tag

    Once you have the base you need to define the ports that will get picked up by the service. See that separation of concerns?:

    一旦有了基础,就需要定义将由服务使用的端口。 看到关注点分离了吗?:

    App Rules

    应用规则

    Then, at some point, we want to know if our app is running. We can even determine exactly where it is in it's lifecycle with the various hooks:

    然后,在某个时候,我们想知道我们的应用程序是否正在运行。 我们甚至可以使用各种挂钩来确定它在生命周期中的确切位置:

    Names

    名字

    This is more of a general concept, but I do want to point out that giving things names is very important in the Kubernetes ecosystem. Notice that we gave our container and port a name. Later on when we need to refer to them we use that name.

    这更多是一个笼统的概念,但我确实要指出,在Kubernetes生态系统中,给事物起名字非常重要。 注意,我们给containerport name 。 稍后,当我们需要引用它们时,我们使用该name

    使用Helm Chart在Kubernetes上部署NGINX (Deploy NGINX on Kubernetes with a Helm Chart )

    The Helm package manager creates a series of templates that can be modified through the Helm CLI. Each of these templates corresponds to one of our Kubernetes types that we discussed earlier.

    Helm软件包管理器创建了一系列模板,可以通过Helm CLI对其进行修改。 这些模板中的每一个都对应于我们前面讨论的Kubernetes类型之一。

    Here is an example of the bitnami/nginx helm chart:

    这是bitnami / nginx舵图的示例:

    Here is that same block with the Helm templating language. For the sake of brevity I have omitted some parts of the template. If you would like to see the whole thing you can take a look at it in the GitHub repo.

    这与Helm模板语言相同。 为了简洁起见,我省略了模板的某些部分。 如果您想了解全部内容,可以在GitHub存储库中进行查看。

    (This is for demonstration purposes and is not a fully functional Helm chart. Please don't use this. Grab the actual Helm chart instead.)

    (这只是出于演示目的,而不是功能齐全的Helm图表。请不要使用它。而是获取实际的Helm图表。)

    “舵模板”值从何而来? (Where do the Helm Template values come from?)

    Now, this is what I really like about Helm. The values that are exposed in the template come from one of two places.

    现在,这就是我真正喜欢Helm的原因。 模板中公开的值来自两个位置之一。

    Templated Functions

    模板化功能

    They come from the template itself, as shown here.

    它们来自模板本身,如下所示。

    {{ template "nginx.fullname" . }}

    We can find that this is defined in our templates/_helpers.tpl, which is a way of getting more complex functions that we could get with just a yaml file.

    我们可以发现这是在我们的templates/_helpers.tpl定义的,这是一种获取更复杂功能的方法,而这些功能可以通过yaml文件获得。

    Values exposed in the Values.yaml

    在Values.yaml中公开的值

    This is actually a very neat feature and what makes Helm so powerful and configurable.

    这实际上是一个非常简洁的功能,这使Helm如此强大和可配置。

    Each Helm chart comes along with a values.yaml. You can put whatever you want in the values.yaml, and then use it throughout your Helm chart, and it's exposed through the CLI!

    每个Helm图表都带有values.yaml 。 您可以将所需的内容放在values.yaml ,然后在整个Helm图表中使用它,并且它通过CLI公开!

    Then we see this referred to in our templates as:

    然后,我们在模板中将其称为:

    Everything in the values.yaml can also be modified through the Helm CLI:

    还可以通过Helm CLI修改values.yaml所有内容:

    It would then render the containers[0].image as image: docker.io/bitnami/nginx:my-new-tag

    然后它将containers[0].imageimage: docker.io/bitnami/nginx:my-new-tag

    结语 (Wrap Up)

    That's it! I hope that you've learned a little about Kubernetes and its package manager Helm. Hopefully it isn't quite as scary as it once was.

    而已! 我希望您对Kubernetes及其程序包管理器Helm有所了解。 希望它不会像以前那样可怕。

    翻译自: https://www.freecodecamp.org/news/an-introduction-to-the-helm-package-manager-for-kubernetes/

    helm部署仓库中没有的包

    展开全文
  • SavedIndex 压缩后的数据 type SavedIndex struct { APIVersion string `json:"apiVersion"` Generated time.Time `json:"generated"` Applications map[string]*Application ...
  • helm远程chart仓库搭建

    千次阅读 2019-02-23 16:32:00
    1.下载helm wget ... 2.创建helm数据目录 mkdir -p /data/helm/data 3.将本地helm打包成 helm 压缩包并复制到helm服务端数据目录 #helm package helm/jen...

    1.下载helm

    wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.0-rc.1-linux-amd64.tar.gz

    2.创建helm数据目录

    mkdir -p /data/helm/data

    3.将本地helm打包成 helm 压缩包并复制到helm服务端数据目录

    #helm package helm/jenkins
    Successfully packaged chart and saved it to: /srv/devops/helm/jenkins-0.16.1.tgz
    #scp helm/jenkins-0.16.1.tgz /data/helm/data

    4.启动helm服务端
    启动动helm服务端将自动生产index.yaml文件

    #nohup helm serve --address 0.0.0.0:8879 --repo-path /data/helm/data &> /data/helm/helm-server.log &

    # ls /data/helm/data/
    gitlab-0.2.8.tgz index.yaml

    如果先启动了本地仓库,再往仓库加镜像时,先把chart包复制到仓库目录下,再 通过helm repo index命令重新生成index.yalm 文件。具体示例如下:

    helm repo index /data/helm/data --url http://IP:8879

    通过浏览器访问 http://IP:8879 可以看到新添加的chart 包。

    添加远程helm仓库:helm repo add {repo_name} http://IP:8879

    示例:

    helm repo add devops http://192.168.4.120:8879

    删除远程仓库: helm repo remove {repo_name} http://IP:8879

    示例:

    helm repo remove devops

    展开全文
  • helm 仓库的使用说明

    2021-05-24 10:14:02
    # Helm的Repo仓库和Docker Registry类似,这个Chart库可用来存储和共享打包 # Chart仓库其实就是带有index.yaml索引文件和若干个已打包的Chart的HTTP服务而已 # 自己托管Chart仓库非常简单,如阿里云的OSS、Github ...
    
    # Helm的Repo仓库和Docker Registry类似,这个Chart库可用来存储和共享打包
    # Chart仓库其实就是带有index.yaml索引文件和若干个已打包的Chart的HTTP服务而已
    # 自己托管Chart仓库非常简单,如阿里云的OSS、Github Pages,甚至创建一个简单服务器都可以
    
    # --------------------------------------- Example
    # 添加私有仓库
    [root@localhost ~]# helm repo add bitnami https://charts.bitnami.com/bitnami
    [root@localhost ~]# helm repo add ali-stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
    
    # 输出现有仓库列表
    [root@localhost ~]# helm repo list
    # NAME          URL
    # bitnami       https://charts.bitnami.com/bitnami
    # ali-stable    https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
    
    # 从仓库更新Charts (相当于yum update) Make sure we get the latest list of charts
    [root@localhost ~]# helm repo update
    # Hang tight while we grab the latest from your chart repositories...
    # ...Successfully got an update from the "ali-stable" chart repository
    # ...Successfully got an update from the "bitnami" chart repository
    # Update Complete. ⎈Happy Helming!⎈
    
    # 在仓库中搜索并列出可安装的chart
    [root@localhost ~]# helm search repo mysql | head -n 5
    # NAME                CHART VERSION  APP VERSION DESCRIPTION
    # ali-stable/mysql    0.3.5                      Fast, reliable, scalable, and easy to use open-...
    # bitnami/mysql       8.5.8          8.0.25      Chart to create a Highly available MySQL cluster  
    # ali-stable/percona  0.3.0                      free, fully compatible, enhanced, open source d...
    # bitnami/phpmyadmin  8.2.5          5.1.0       phpMyAdmin is an mysql administration    
    
    # --------------------------------------- 附
    
    helm search hub
    # 从Artifact Hub中查找并列出charts。Artifact Hub中存放了大量不同的仓库
    # 可通过运行该命令找到公开可用的charts,如:helm search hub wordpress
    # 新版中的helm search命令区分repo和hub (repo是自己手动添加的源)
    # 其中hub是helm的中心库,各软件商需在这个hub仓库中把应用更新到最新之后用户才能搜索到 (类似dockerhub)
    
    helm search repo
    # 从添加(使用helm repo add命令)到本地客户端的仓库中查找,该命令基于本地数据进行搜索,无需互联网
    
    # 推荐使用微软的Helm仓库
    # stable:       http://mirror.azure.cn/kubernetes/charts/
    # incubator:    http://mirror.azure.cn/kubernetes/charts-incubator/
    
    # 公共的charts仓库地址
    # https://hub.kubeapps.com/
    
    # ---------------------------------------
    
    # 若需自己创建Web服务器作为repo的话只需实现下面几个功能点即可
    #   1.将索引文件和Chart置于服务器目录中
    #   2.确保索引文件index.yaml可以在没有认证要求的情况下访问
    #   3.确保YAML文件的正确内容类型(text/yaml 或 text/x-yaml)
    
    

    基于 helm3 使用 harbor 作为 chart repo

    
    # 设置context指定对应的namespace (不指定使用的是default)
    # 这里是因为helm3的执行权限和 kubectl config 的权限是一致的 ...
    kubectl config set-context <current-context> --namespace harbor
    
    # 简化方式安装harbor (harbor的默认账号密码: admin/Harbor12345)
    helm -n harbor install harbor goharbor/harbor \
        --set persistence.enabled=false \
        --set expose.type=nodePort \
        --set expose.tls.enabled=false \
        --set externalURL=http://192.168.10.196:30002
    
    # 通过nodeport登录harbor的web页面,新建一个仓库 chart repo、新建一个 test 用户
    
    # 添加repo到helm中
    helm repo add harbor_repo http://192.168.1.1:30002/chartrepo/chart_repo
    
    # 安装使用 helm-push 插件
    helm plugin install https://github.com/chartmuseum/helm-push
    
    # Push charts 到 harbor
    helm push grafana-0.0.2.tgz harbor_repo --username test --password xxx
    
    

    基于 helm2 创建内部 repo

    
    helm serve --address 0.0.0.0:8879 --repo-path /data/helm/repo/ --url http://192.168.1.1:8879/charts/
    
    # 更新 Helm Repository 的索引文件
    cd /home/kubernetes/.helm/repository/local
    helm repo index --url=http://192.168.100.211:8879 .
    
    # 添加helm仓库
    helm repo add local http://127.0.0.1:8879
    
    
    展开全文
  • 数据仓库 Broad Data Science Platforms Group的Datarepo掌舵仓库 我如何安装仓库 helm repo add datarepo-helm https://broadinstitute.github.io/datarepo-helm helm repo update 如何安装这些图表? 只要helm ...
  • Helm 3 使用 harbor 作为仓库存储 charts

    千次阅读 2019-07-27 09:59:57
    Helm 3 使用 harbor 作为仓库存储 charts

    简介

    本文讲述的是调教 Helm 3 和 harbor 1.6 的经验,从 helm2 更新到 helm 3 并且将 charts 推送到 harbor 中进行存储,移除了原先的 helm serve,在讲述怎么操作之前先来看一下Helm 3 和 Harbor 1.6 的新特性。

    Helm 3 新特性

    • 移除了 Tiller
    • 不同的 namespace 可以使用相同的 Release Name
    • 简化模板对象 .Capabilities
    • 使用JSONSchema验证 charts 的 Values
    • requirements.yaml合并到Chart.yaml
    • helm install 时需要指定 Release Name,开启自动生成需要 --generate-name 参数
    • 支持 push 到远端 registry (如:harbor)
    • 移除 helm serve
    • 命令行变化(将原先的命令保留为别名Aliases)
      • helm delete --> helm uninstall
      • helm inspect -> helm show
      • helm fetch -> helm pull
    • go 导入路径改变 k8s.io/helm --> helm.sh/helm

    具体新特性可以参考Helm 3 新特性,或者参考Helm 官方文档

    Harbor v1.6.0 新特性

    • 支持存储 helm charts

    这里没什么好说的,想要了解更多关于Harbor的,可以参考官方Github

    调教开始

    在了解了以上新的特性之后,让我着手来操作吧

    环境
    • kubernetes 1.10
    • helm 3
    • harbor 1.6
    调教步骤
    1. 确保kubernetes环境可用
    2. 下载并初始化 helm 3
    3. 安装 harbor 1.6
    4. 添加 harbor 中的 chartrepo 到 helm 3 中
    5. 安装使用 helm-push 插件
    1.确保kubernetes环境可用

    这里就不多说 kubernetes 环境的具体搭建过程了,搭建步骤随处可见。

    2.下载并初始化 helm 3

    首先执行一下命令,下载并解压安装包

    wget https://get.helm.sh/helm-v3.2.1-linux-amd64.tar.gz
    tar zxvf helm-v3.2.1-linux-amd64.tar.gz
    cd linux-amd64
    cp helm /usr/local/bin
    

    查看 helm 命令是否可用

    helm version
    

    解压之后,你如果使用过helm 2 你会发现里面tiller的二进制文件不见了,前文的新特性中已经说了,helm 3 已经移除了 tiller

    3.安装 harbor 1.6

    这里我使用的是 harbor 官方提供的 charts repo,好奇心驱使我打开了这个网站 https://helm.goharbor.io/

    在这里插入图片描述
    这熟悉的界面让我严重怀疑是使用的 helm serve 启的 repo(滑稽脸)

    添加harbor repo

    helm repo add goharbor https://helm.goharbor.io
    

    这个 repo 只有一个charts harbor ,对应的 harbor 版本为1.8.1

    在安装之前我们需要配置一下 kube config context

    查看当前的context

    kubectl config current-context
    

    设置 context 指定对应的 namespace ,不指定使用的是 default

    kubectl config set-context <current-context> --namespace test
    

    这里是因为,helm 3 开始helm 3 的执行权限和kubectl config 的权限是一致的,通过kubectl config的方式来控制helm 3 的执行权限。

    按时安装harbor ,这里为了简化测试操作,我关闭了数据卷的挂载并使用的是 NodePort 方式进行访问。

    helm -n test install harbor goharbor/harbor --set persistence.enabled=false --set expose.type=nodePort --set expose.tls.enabled=false --set externalURL=http://192.168.10.196:30002
    

    参数说明:

    • persistence.enabled=false 关闭存储,为了方便操作,真实使用时需要挂在存储
    • expose.type=nodePort 使用 NodePort 访问
    • expose.tls.enabled=false 关闭tls
    • externalURL=http://192.168.10.196:30002 设置登录 harbor 的外部链接

    出现以下返回,就证明已经开始安装了

    NAME: harbor
    LAST DEPLOYED: 2019-07-23 11:00:38.525597536  0800 CST m= 0.690703892
    NAMESPACE: test
    STATUS: deployed
    
    NOTES:
    Please wait for several minutes for Harbor deployment to complete.
    Then you should be able to visit the Harbor portal at https://core.harbor.domain. 
    For more details, please visit https://github.com/goharbor/harbor.
    
    4.添加 harbor 中的 chartrepo 到 helm 3 中

    harbor 装好之后,我们访问 http://192.168.10.196:30002 进行登录 harbor, harbor 的默认账号密码是 admin/Harbor12345

    在这里插入图片描述
    新建一个chart repo

    在这里插入图片描述
    创建一个 test 用户
    在这里插入图片描述
    添加 repo 到 helm 中

    helm repo add test http://192.168.10.76:30002/chartrepo/chart_repo
    
    5.安装使用 helm-push 插件
    helm plugin install https://github.com/chartmuseum/helm-push
    

    这里最好本地配置一下 github 的 dns 地址,不然可能会出现链接超时的现象

    安装好插件之后,就可以push charts 到 harbor 里面了

    helm push grafana-0.0.2.tgz test --username test --password xxx
    

    在这里插入图片描述
    出现以上就说明 push 成功了 ,恭喜!!!

    参考

    • https://github.com/chartmuseum/helm-push
    • https://github.com/goharbor/harbor
    • https://github.com/helm/helm

    • Github: https://github.com/innerpeacez
    • 个人Blog: https://ipzgo.top
    • 日拱一卒,不期速成
    展开全文
  • 重磅福利:JFrog Artifactory 发布免费社区版,支持 Docker ,Helm 和通用仓库 – JCR JFrog于 2019-11-20在 Kubecon 大会上宣布JFrog 镜像仓库免费社区版发布,简称JCR (JFrog Container Registry),作为市面上...
  • helm系列3--helm集成minio搭建私有仓库

    千次阅读 2018-06-07 10:55:04
    minio介绍我们一般是从本地的目录结构中的chart去进行部署,如果要集中管理chart,就需要涉及到repository的问题,因为helmrepository都是指到外面的地址,接下来我们可以通过minio建立一个企业私有的存放仓库。...
  • Kubernetes 集群仓库 Harbor Helm3 部署

    千次阅读 2020-08-27 16:23:50
    文章目录Kubernetes 集群仓库 harbor Helm3 部署一、简介二、先决条件三、准备环境1、系统环境2、核实动态存储3、安装 Helm34、创建 Namespace四、创建自定义证书1、生成证书文件:2、生成 secret 对象五、设置...
  • Helm 常用命令

    2020-08-03 21:20:38
    Helm 常用命令查看仓库数据查看helm仓库相关命令删除仓库命令查看安装项目状态删除项目命令Chart文件打包命令上传chart包到Chartmusume 仓库安装Chart文件直接用目录安装更新chart直接用目录升级调试chart ...
  • helm2升级至helm3

    2021-01-08 16:13:14
    可以从rancher国内仓库下载helm3工具 下载helm3最新版本 wget http://rancher-mirror.cnrancher.com/helm/v3.4.1/helm-v3.4.1-linux-amd64.tar.gz tar -zxvf helm-v3.4.1-linux-amd64.tar.gz cp linux-amd64/helm /...
  • helm使用

    2019-04-30 16:36:41
    文章目录helm概念更新常用命令helm安装方式helm 调试chart目录结构更新 helm upgrade版本回滚参考 helm概念 Helm 有两个重要的概念:chart 和 release。 ​ chart 是创建一个应用的信息集合,包括各种 Kubernetes ...
  • Helm简介

    万次阅读 2018-03-13 13:02:11
    Helm简介 这几天花了不少时间在helm的学习之上,目前还不能熟练运行,很多东西都停留在记忆层面。整理这篇文章为加深印象,也便于后续实践的过程中参考和查询——记性不好。 1、简介 Helm is the best way...
  • helm快速使用

    2020-05-20 08:27:40
    前提是已安装好docker、k8s集群。 1、helm 3安装 wget https://get.helm.sh/helm-v3.2.0-linux-amd64.tar.gz ...2、添加主要的在线仓库 helm repo add stable https://kubernetes-charts.storage.googleapis
  • Go Helm

    2018-09-29 15:44:51
    Helm将一个应用所需要声明的所有Kubernetes资源,以模板的形式打包到一个文件夹下,然后通过预定义的或用户自定义的K-V文件进行渲染,最后排序后一并提交到Kubernetes执行。Helm还提供一个额外的抽象release,它存在...
  • helm 部署Prometheus

    千次阅读 2020-12-19 02:36:38
    环境信息: kubernetes版本:v1.18.2(kubeasz部署) helm 版本:v3.2.1 ...1、安装helm3并添加仓库 wget https://get.helm.sh/helm-v3.2.1-linux-amd64.tar.gz tar -xf helm-v3.2.1-linux-amd64.tar.gz mv ./l
  • helm部署mysql

    千次阅读 2020-03-29 16:46:37
    在K8S部署mysql的步骤可用helm来简化,今天就来实战通过helm部署mysql,并且将之前遇到的问题和解决方法列出来;
  • helm简介 Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现、共享和使用为Kubernetes构建的应用。 1.Helm的三个基本概念 ...Chart:Helm应用...Repository:Helm package存储仓库 Release:char...
  • Helm 入门指南

    2018-10-21 10:12:00
    Helm 为Kubernetes的软件包管理工具,Helm有两部分组成:Helm客户端、Tiller服务端,Helm三个主要部件:Chart、仓库、Release; Chart:为Kubernetes中应用程序所需要的资源的定义。 仓库:为存储Helm chart的仓库,...
  • helm教程

    2021-03-02 17:50:59
    Helm是k8s的包管理工具,类似Linux系统常用的 apt、yum等包管理工具。 使用helm可以简化k8s应用部署 2.基本概念 Chart:一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 ...
  • Helm教程

    2019-05-29 18:15:00
    Helm是k8s的包管理工具,类似Linux系统常用的 apt、yum等包管理工具。 使用helm可以简化k8s应用部署 2.基本概念 Chart:一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 ...
  • Helm号称 构建k8s运行的软件 最好的一种途径和方式,实际上Helm是一个软件管理服务,通过Helm Charts的方式帮助我们定义,安装和升级 即使很复杂的 k8s 应用和软件。 有点类似于 Ubuntu 中使用的apt、Centos中使用的...
  • 摘要介绍安装helm3安装升级工具开始迁移清理数据 介绍 Helm2有两个主要的组件: Tiller: helm的服务端,部署在k8s里面的一个pod,通常在kube-system这个系统空间里。主要负责部署helm charts,管理release,跟k8s ...
  • 是公司中每个人都可以提出问题并从数据中学习的简便,开源的方式。 包回购 ./package.sh git add . && git commit -m " New release " && git push origin master 凹凸版本元数据库 更改Chart.yaml和values.yaml中的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,798
精华内容 719
关键字:

helm数据仓库