如何部署一堆yaml文件?

zer*_*ing 2 kubernetes kubernetes-helm

我想在我的 kubernetes 集群上部署一堆 yaml 文件https://github.com/quay/quay/tree/master/deploy/k8s并想知道立即部署这些文件的最佳方法是什么。

Har*_*var 7

可以直接应用文件夹

kubectl create -f ./<foldername>

kubectl apply -f ./<foldername>
Run Code Online (Sandbox Code Playgroud)

您还可以在一个命令中添加多个文件

kubectl apply -f test.yaml,test-1.yaml
Run Code Online (Sandbox Code Playgroud)

您还可以将所有 YAML 文件合并到一个文件中并进一步管理它。

Marge YAML 文件使用---

例如 :

apiVersion: v1
kind: Service
metadata:
  name: test-data
  labels:
    app: test-data
spec:
  ports:
  - name: http
    port: 80
    targetPort: 9595
  - name: https
    port: 9595
    targetPort: 9595
  selector:
    app: test-data
    tier: frontend
---
apiVersion: v1
kind: Service
metadata:
  name: test-app
  labels:
    app: test-app
spec:
  ports:
  - name: http
    port: 80
    targetPort: 9595
  - name: https
    port: 9595
    targetPort: 9595
  selector:
    app: test-app
    tier: frontend
Run Code Online (Sandbox Code Playgroud)


Tec*_*ext 6

您可以考虑使用Helm(Kubernetes 的包管理器)。就像我们在 Linux 中使用yumor一样,我们在 k8s 中使用。apt-gethelm

使用 Helm,您可以一次性部署多个资源(一堆 YAML)。Helm Charts 可以帮助您定义、安装和升级甚至是最复杂的 Kubernetes 应用程序。Helm 使用一种称为图表的打包格式。图表是描述一组相关 Kubernetes 资源的文件集合。单个图表可用于部署简单的内容(例如 memcached pod)或复杂的内容(例如包含 HTTP 服务器、数据库、缓存等的完整 Web 应用程序堆栈)。此外,您不需要合并所有 YAML;它们可以作为给定图表的一部分保持独立。此外,如果一个图表依赖于另一个图表,您可以使用 helm依赖功能。

我使用 Helm 的原因是因为每当我部署图表时,helm 都会将其作为发布进行跟踪。对图表的任何更改都会获得新的发布版本。这样,升级(或回滚)变得非常容易,您可以自信地说出给定版本的一部分。

此外,如果您有不同的微服务,它们之间有共同点,那么 helm 提供了一个名为 Library Chart 的功能,您可以使用该功能创建可在图表之间重复使用的定义,从而保持图表干燥。

观看此介绍视频:https://www.youtube.com/watch ?v=Zzwq9FmZdsU&t=2s


Gui*_*ido 5

kubectl apply -f <folder-name>

部署给定文件夹中所有文件的简单方法。