如何在 Helm 图表中创建多容器应用程序?

How can one create a multi-container application in helm charts?

我没有在 helm 图表上看到任何关于多容器 pod 应用程序的文档。谁能指出如何做到这一点?

像这样https://linchpiner.github.io/k8s-multi-container-pods.html or https://www.mirantis.com/blog/multi-container-pods-and-container-communication-in-kubernetes/

所以基本上有一个包含多个容器的 pod。

helm 图表支持这个吗?

更新: 我现在已经能够使用此帮助来部署 pod(最终示例 pod 定义)

https://github.com/helm/charts/blob/master/stable/keycloak/templates/test/test-pod.yaml

但是我如何拥有副本,例如增加 pods 的数量,我会启动类似 deployment.yaml 的文件?

它应该在模板中得到支持,本质上是在 Pod 规范中使用具有多个容器的模板。该 Pod 规范也可以在其他抽象中,如 Deployments、DaemonSets、StatefulSets 等。

示例:

https://github.com/helm/charts/blob/master/stable/mysql/templates/deployment.yaml https://github.com/helm/charts/blob/master/stable/lamp/templates/deployment.yaml

这里还有一些:

https://github.com/helm/charts/tree/master/stable

您可以像这样扩展您的部署副本:

kubectl scale deployment mysql-deployment --replicas=10

更多相关内容here

在模板上,您可以在部署规范中指定 replicas

例如:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: my-dep
  namespace: kube-system
  labels:
    k8s-app: my-app
spec:
  replicas: 1   <= here
  selector:
    matchLabels:
      k8s-app: my-app
  template:
    metadata:
      labels:
        k8s-app: my-app
        name: my-app
    spec:
      serviceAccountName: mysa
      terminationGracePeriodSeconds: 60
      containers:
      - image: mycontainer
        name: myappcontainer
        ports:
        - name: http
          containerPort: 80
        - name: admin
          containerPort: 8080
        args:
        - --opt1
        - --opt2
        - --opt3
      - image: mycontainer2
        name: myappcontainer2