问题标签 [kubernetes-deployment]

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.

0 投票
1 回答
596 浏览

kubernetes - k8s - 具有服务依赖的部署

我正在玩 k8s 部署 - 滚动更新,它运行得非常好。我很想知道当我们有服务依赖时如何进行部署!不确定我是否正确解释了我的问题。这只是一个非常高级的场景!

让我们考虑这个例子。我已经部署了 2 个应用程序,每个应用程序有 10 个副本,作为服务公开。

服务 A 依赖于 B。现在作为 v2 版本的一部分,两个应用程序都需要使用 v2。服务 B api 需要很少的附加参数/略有变化。当我们用更新的 v2 版本升级这两个应用程序时,如果 service-B 在 Service-A 之前启动并运行,则某些请求将失败,因为 Service-A 仍在 v1 中(因为升级正在进行中)。我们怎样才能在没有任何失败的情况下进行部署?如果您已经在使用 k8s,那么您将遵循的最佳实践是什么。

0 投票
1 回答
938 浏览

kubernetes - 根据标签更新多个 pod

我有以下情况:

我有多个部署运行相同的映像,并且配置相同,但环境变量除外。

现在我的问题是,有没有一种简单的方法来更新所有这些部署的图像,而不是一个一个地更新?

我还没有找到解决方案,但我认为这应该可以通过使用标签来实现?

还是有更好的方法来部署仅具有不同环境变量的相同部署?

0 投票
2 回答
5318 浏览

kubernetes - Helm 图表无限期停留在 PodInitializing 状态

我在家里的 Ubuntu 服务器上运行microk8s集群,并将它连接到本地 NAS 服务器以进行持久存储。我一直将它用作学习 Kubernetes 的个人试验场,但我似乎在几乎每一步都遇到了一个又一个的问题。

我已经安装了NFS Client Provisioner Helm 图表,我已经确认它可以工作 - 它会在我的 NAS 服务器上动态配置 PVC。后来我能够成功安装Postgres Helm 图表,或者我是这么认为的。创建它后,我能够使用 SQL 客户端连接到它,我感觉很好。

直到几天后,我注意到 pod 显示 0/1 容器已准备就绪。尽管有趣的是,nfs-client-provisioner pod 仍然显示 1/1。长话短说:我已经删除/清除了 Postgres Helm 图表,并尝试重新安装它,但现在它不再工作了。事实上,我尝试部署的任何新东西都不起作用。一切看起来都好像可以工作,但随后就永远挂在 Init 或 ContainerCreating 上。

特别是使用 Postgres,我一直在运行的命令是这样的:

我的postgres.yaml文件如下所示:

但是,如果我这样做,kubectl get pods我仍然会看到:

如果我做 a kubectl describe pod postgres-postgresql-0,这是输出:

如果我做 a kubectl get pod postgres-postgresql-0 -o yaml,这是输出:

我在这些中看不到任何明显的东西来确定可能发生的事情。而且我已经重新启动了服务器,看看是否有帮助。有什么想法吗?为什么我的容器无法启动?

0 投票
18 回答
39461 浏览

kubernetes - Kubernetes 创建部署意外的 SchemaError

我正在关注该教程(https://www.baeldung.com/spring-boot-minikube)我想在 yaml 文件(simple-crud-dpl.yaml)中创建 Kubernetes 部署:

但是当我跑步时,kubectl create -f simple-crud-dpl.yaml我得到了: error: SchemaError(io.k8s.api.autoscaling.v2beta2.MetricTarget): invalid object doesn't have additional properties

我正在使用最新版本的 kubectl:

我也在本地使用 minikube,如教程中所述。一切正常,直到部署和服务。我做不到。

0 投票
1 回答
284 浏览

kubernetes - Kubernetes 使用哪种算法来控制副本集/部署中的流量

有人问我这个问题,但我在网上找不到有关它的信息 - Kubernetes 使用哪种算法来控制 Pod 的副本集或部署中的流量(我猜它们相同)?

可以说,我的 Kubernetes 集群中有 5 个 pod 的副本,在副本集中定义。在新请求中,集群如何选择去哪个 pod?它使用循环吗?我找不到有关它的信息。

0 投票
3 回答
6346 浏览

deployment - Kubernetes中如何设置Deployment副本的不同环境变量

现在通过将 Deployment 的副本设置为 4,我有 4 个 k8s pod。

POD 将获取数据库中的项目并使用它,数据库中的项目有一列class_name

现在我想要一个 pod 只得到一个class_name的项目。例如pod1仅获取class_name等于的项目class_name_1,并且pod2仅获取class_name等于class_name_2...的项目

所以我想将不同class_name的环境变量传递给不同的部署 POD。可以在Deployment的yaml文件中定义吗?

或者有没有其他方法可以实现我的目标?(比如在 k8s 中部署以外的其他方法)

0 投票
1 回答
109 浏览

kubernetes - Gke - kubernetes / 如何确保给定节点上的部署隔离

在节点选择器、亲和/反亲和之间有点迷失;污点

我感兴趣的是确保单个 pod/部署将在给定节点上运行,而不是在其他任何地方。并且该节点不会收到除指定的 Pod 之外的任何其他 Pod

鉴于上述选项(如果还有其他选项),最简洁的方法是什么?

0 投票
2 回答
1277 浏览

kubernetes - kubernetes - 将容器信息公开为环境变量

我试图将一些容器信息公开为 env 变量,从 pod 的 spec.template.spec.containers[0].name 读取值,这似乎不起作用。在部署模板中引用容器字段的 apiSpec 是什么。部署模板如下:

0 投票
1 回答
484 浏览

kubernetes - 如何在 Kubernetes 部署或 StatefulSet 之间创建依赖关系

我有几个有状态集,一个依赖于另一个,我需要第一个有状态集中的 pod 在开始扩展第二个有状态集之前处于就绪状态。

我正在寻找是否有办法链接两个有状态集以自动方式实现这一目标,而不是我手动执行。我对部署也有同样的担忧。

目前我不使用 Helm 或任何其他工具,只使用 kubectl。

0 投票
2 回答
168 浏览

kubernetes - 如何在 kubernetes 中维护一组唯一的数字运算容器?

我想在 kubernetes 中运行一组“容器”,每个容器仅在 docker 环境变量中有所不同(每个都搜索它自己的数据集,该数据集位于网络存储中,然后缓存到容器的 ram 中)。例如:

  • 容器 1 -> 数据集 1
  • 容器 2 -> 数据集 2

随着时间的推移,我想从这个“集合”中添加(有时删除)容器,但不想在这样做时重新启动所有容器。

根据我对 Kubernetes 的(幼稚)知识,我能看到的唯一方法是:

  • 每个容器都可以是它自己的部署——但是有成千上万个容器,所以修改和管理会很痛苦。

所以我的问题是:

  1. 我可以使用 StatefulSet 来管理它吗?

    1.1。当 StatefulSet 被“更新”时,它是否必须重新启动所有 pod,即使它们的“规范”没有改变?1.2 StatefulSets 是否允许每个独特的容器/pod 拥有自己的环境变量?

  2. 是否有任何 kubernetes 概念将部署“分组”到某个逻辑单元中?
  3. 关于如何在 Kubernetes 中实现这一点还有其他想法吗?
  4. docker swarm(或其他容器管理平台)会更适合我的用例吗?