Docker 如何在没有互联网接入的情况下使用航向图

Docker 如何在没有互联网接入的情况下使用航向图,docker,charts,deployment,kubernetes-helm,Docker,Charts,Deployment,Kubernetes Helm,我们都知道helm图表令人惊奇,让我们的生活更轻松 然而,当我想使用helmcharts-而不需要互联网访问时,我得到了一个用例 有两个步骤: 从Git下载图表 从Dockerhub中提取Docker图像(在values.yaml文件中指定) 我该怎么做呢?我知道问题第一部分的答案 实际上,您可以git克隆https://github.com/kubernetes/charts.gitgithub中的所有官方图表,并指定要安装的文件系统中图表(文件夹)的路径 这将以helmfile 执行如下

我们都知道
helm
图表令人惊奇,让我们的生活更轻松

然而,当我想使用
helm
charts-而不需要互联网访问时,我得到了一个用例

有两个步骤:

  • 从Git下载图表
  • 从Dockerhub中提取Docker图像(在
    values.yaml
    文件中指定)

我该怎么做呢?

我知道问题第一部分的答案

实际上,您可以
git克隆https://github.com/kubernetes/charts.git
github中的所有官方图表,并指定要安装的文件系统中图表(文件夹)的路径

这将以
helmfile

执行如下命令:

helmfile-f deployment.yaml sync

cat deployment.yaml
...
repositories:
  - name: roboll
    url: http://roboll.io/charts

context: example.int.com                # kube-context (--kube-context)

releases:

  # Prometheus deployment
  - name: my_prometheus              # name of this release
    namespace: monitoring                       # target namespace
    chart: /opt/heml/charts/stable/prometheus                    # the chart being installed to create this release, referenced by `repository/chart` syntax
    values: ["values/values_prometheus_ns_monitoring.yaml"]
    set:                                        # values (--set)
      - name: rbac.create
        value: true
  # Grafana deployment
  - name: my_grafana              # name of this release
    namespace: monitoring                       # target namespace
    chart: /opt/heml/charts/stable/grafana
    values: ["values/values_grafana_ns_monitoring.yaml"]
如您所见,我已经指定了一些自定义的
值\uu ns\u monitoring.yaml
文件

我原始问题的第二部分仍然没有回答

我希望能够告诉
docker
在本节中使用本地docker图像

cat values_grafana_ns_monitoring.yaml

replicas: 1

image:
  repository: grafana/grafana
  tag: 5.0.4
  pullPolicy: IfNotPresent
我已设法手动复制/粘贴-然后加载docker图像 所以它在我的电脑里是可见的,但我不知道如何说服我 docker+helmfile使用我的图像。目标是完全处理FLINE安装

有什么想法吗

 sudo docker images
[sudo] password for jantoth:
REPOSITORY                                                       TAG                 IMAGE ID            CREATED             SIZE
my_made_up_string/custom_grafana/custom_grafana                               5.1.2               917f46a60761        6 days ago          238 MB

脱机使用“掌舵图”包括从internet上拖动图表,然后安装它:

$ helm pull <chart name>
$ ls #The chart will be pulled as a tar to the local directory
$ helm install <whatever release name you want>  <chart name>.tgz
$helm pull
$ls#图表将作为tar拉入本地目录
$helm install.tgz
要使此方法起作用,您需要图表在本地使用的所有docker图像,如您所述

从Dockerhub中提取docker映像而不访问INTERNET

显然,这是不可能的。但是,可以通过将问题分为几个阶段来解决:

  • 将docker映像从Dockerhub拉至可访问internet的系统
  • 保存docker映像,将其复制到要在其中进行脱机安装的目标环境,然后重新加载映像
  • 在目标环境中设置docker注册表,并将docker图像标记/推送到该注册表中
  • 在helm charts/kubernetes yaml文件中,更新图像引用以指向本地docker注册表

  • 或者,您可以查看脱机打包/部署工具,如

    这对脱机环境很有用。非常感谢!在离线环境中,显然我们没有互联网,只有少数安全虚拟机的安全SSH。因此,我
    helm将
    从具有Internet访问的服务器,
    scp
    拉到离网环境,然后执行
    helm安装