问题标签 [kubernetes-helm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - 无法将秘密挂载到 /etc 中的卷
我有一个 K8s 部署,它将一个秘密挂载到/etc/google-cloud-account
包含要从应用程序使用的 Google auth JSON 文件中。当我尝试运行部署时,我的 pod 出现以下错误:
有问题的部署如下所示:
我不知道/etc
容器中的只读文件系统如何,也不知道如何更改它。
arrays - Concourse CI - 数组变量
我试图弄清楚如何使用一些 CIDR ip 地址创建一个数组,以便在我的管道中拥有相同的数组。所以这是一个示例 var 文件:
我的管道是这样的:
我希望它是:
或者
在我的 helm 模板中,我当然有我的 values.yaml 文件:
它将被管道覆盖。最后,在我的服务文件中,我正在制作一个循环:
你们中的任何人都能够做到这样的事情吗?
kubernetes - GitLab CI/Kubernetes - 为测试环境(非生产环境)运行 postgres 迁移
我正在将我的 Phoenix 应用程序推送到 Kubernetes 集群以通过 GitLab 进行测试。一旦我的应用程序和 postgres 服务准备就绪,我希望能够mix ecto.migrate
在我的脚本中运行。gitlab-ci.yml
这是文件中的一个片段gitlab-ci.yml
:
据我了解,该--wait
参数意味着每个部署将在继续之前完成(全部)。我发现虽然 postgres 部署已经完成,但这并不意味着 postgres 服务器已经准备好。
通常,当kubectl exec
命令运行时,我会收到以下错误:
当我查看 Kubernetes ui 时,我可以看到我的 postgres pod 出现以下错误:
看到这条消息后,我监控了 pod,一切都很好。但不是在我的部署脚本失败之前。
我最初的想法是,我可以initContainer
为我的应用程序创建一个使用 psql 成功连接到服务器并检查“app_db”数据库是否存在的应用程序。这样我就不必担心为超时和重试编写自己的代码——我可以利用 Kubernetes 提供的内置机制。
但是,我不想在我的生产环境中这样做(我想mix ecto.migrate
在生产系统上手动运行)。在这种情况下,这initContainer
简直是对系统资源的浪费。
有没有一种可靠的方法可以通过gitlab-ci.yml
脚本实现这一目标?
docker - Docker 如何在 spec.container.env.value 上使用布尔值
有没有办法为 spec.container.env.value 传递布尔值?我想用 helm 覆盖 docker 父图像(https://github.com/APSL/docker-thumbor)中的布尔环境变量:UPLOAD_ENABLED
我做了一个更简单的测试
如果您尝试以下 yaml :
并尝试使用 kubernetes 创建它,您收到以下错误:
错误 :
验证=假
它也不适用于整数值
kubernetes - 如何访问集群外使用 helm 构建的 Concourse?
我正在使用https://github.com/kubernetes/charts/tree/master/stable/concourse提供的 concourse helm build 在我们的 kubernetes 集群内设置 concourse。我已经能够使设置正常工作,并且可以在集群内访问它,但在集群外访问它时遇到问题。构建中的注释显示我可以使用kubectl port-forward
它来访问网页,但我不希望所有开发人员都必须转发端口才能访问 web ui。我尝试创建一个具有如下节点端口的服务:
这使我可以访问网页并以大多数方式与之交互,但是当我尝试查看构建状态时,它永远不会加载发生的事件。取而代之的是,网络请求/api/v1/builds/1/events
处于待处理状态,并且构建的步骤永远不会加载。有什么想法可以完全访问集群外部的大厅吗?
编辑:似乎事件网络请求通常以text/event-stream
数据类型响应,并且 Kubernetes 服务可能没有正确处理事件流。或者有一些关于大厅处理与规范不同的事件流的东西。
kubernetes - 通过 Helm 部署到 Kubernetes 的本地持久存储
使用Kubernetes 1.7.0,这里的意图是能够部署MySQL / MongoDB / etc,并使用本地磁盘作为存储支持;而 webheads 和处理 pod 可以由 Kubernetes 自动扩展。为了这些目标,我已经
- 设置和部署本地持久存储配置程序,以自动将本地连接的磁盘配置到 pod 的持久卷声明。
- 手动创建了一个Persistent Volume Claim,成功,并且附加了本地卷
尝试通过 helm 部署 MariaDB
helm install --name mysql --set persistence.storageClass=default stable/mariadb
这似乎成功了;但是通过进入仪表板,我得到
卷“local-pv-8ef6e2af”的存储节点关联性检查失败:NodeSelectorTerm [{Key:kubernetes.io/hostname Operator:In Values:[kubemaster]}] 与节点标签不匹配
我怀疑这可能是由于 helm 的图表不包括节点亲和力。除了手动更新每个图表之外,有没有办法告诉 helm 部署到供应商拥有卷的同一个 pod?
docker - 如何使用非 root 用户创建 K8S 集群?
如何使用非 root 用户创建 K8S 集群?包括.. etcd, flannel or Calico, K8S API, kubelet....等
问候
阿修罗
sockets - 具有特定目的的固定数量的 pod(套接字连接)
我们计划使用 Kubernetes,我正在验证它是否以及如何满足我们的要求。一个问题如下:我想构建一个应用程序/pod,它连接到互联网上的某个服务(主机和端口),只要我们需要它就保持套接字处于活动状态(通常是永远)。应用程序将连接到的套接字数量可能会有所不同。对于 Pod 间的通信,我们将使用 RabbitMQ。
为此目的,正确/最佳实践方法是什么?一个 pod 处理所有/多个套接字?处理多个套接字的复制豆荚?每个吊舱一个插座?如果套接字数量发生变化,我该如何应对?
目前我们想为我们的 CI 管道使用 gitlab-ci 和 helm。
kubernetes - 安全访问私有 helm 存储库
- 这甚至可以用 helm 实现吗?
- 哪些安全选项是可能的(BasicAuth?客户端证书?OAuth2?)
- 是否有任何关于此的示例/文档(服务器端和客户端)?