【问题标题】:Kubernetes pod definition file issueKubernetes pod 定义文件问题
【发布时间】:2020-05-31 14:13:47
【问题描述】:

我可以使用以下命令为 wso2 ei 运行 Docker 容器。

docker run -it -p 8280:8280 -p 8243:8243 -p 9443:9443 -v wso2ei:/home/wso2carbon --name integrator wso2/wso2ei-integrator

我正在尝试为其创建 pod 定义文件。我不知道如何在 pod 定义文件中进行端口映射和卷映射。以下是我到目前为止创建的文件。我怎样才能完成剩下的?

apiVersion: v1
kind: Pod
metadata:
    name: ei-pod
    labels:
        type: ei
        version: 6.6.0
spec:
    containers:
        - name: integrator
          image: wso2/wso2ei-integrator

【问题讨论】:

  • 你看过 kubernetes 文档吗?
  • @ArghyaSadhu:是的,找不到好的资源。如果您能指出一个好的资源,我们将不胜感激。
  • 在 Kubernetes 官方文档中,ServiceVolumes 是很好的起点。更好的是,如果您可以安排将数据存储在 pod 本身之外。一般来说,运行 Deployment(或 StatefulSet)会比运行裸 Pod 更好,因为您可以更改 image: 之类的内容并让集群为您重新启动 Pod。
  • 什么是“wso2 ei”?
  • @PeterMortensen:WSO2 是一家产品公司。 EI 代表 Enterprise Integrator,它是一种 ESB。

标签: kubernetes wso2esb kubernetes-pod


【解决方案1】:

这是可能有效的 YAML 内容:

apiVersion: v1
kind: Pod
metadata:
  name: ei-pod
  labels:
    type: ei
    version: 6.6.0
spec:
  containers:
  - name: integrator
    image: wso2/wso2ei-integrator
    ports:
    - containerPort: 8280
    volumeMounts:
    - mountPath: /wso2carbon
      name: wso2ei
  volumes:
  - name: wso2ei
    hostPath:
      # directory location on host
      path: /home/wso2carbon

虽然上述 YAML 内容只是一个基本示例,但不建议将其用于生产环境,原因有两个:

  1. 直接使用部署或 statefulset 或 daemonset 代替 pod。

  2. hostPath 卷在节点之间不可共享。因此,请使用 NFS 或 Block 等外部卷并将其挂载到 pod 中。另请查看使用存储类的动态卷配置。

【讨论】:

  • hostPath: 类型卷将解析到每个节点上的不同位置;它们不涉及共享内容。我只会在相当专业的情况下使用它们,例如进行日志管理的 DaemonSet。
  • @DavidMaze:那么,如果我必须对每个 pod 进行一些配置更改,我该如何实现呢?
猜你喜欢
  • 2020-03-23
  • 2021-11-08
  • 1970-01-01
  • 2018-11-16
  • 2020-01-09
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 2021-01-24
相关资源
最近更新 更多