问题标签 [kubernetes-namespace]
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 - Kubernetes 中 Pod 的优先级
我有一些在集群中运行的可爆 pod,我不想在内存/cpu 压力的情况下被杀死。
有什么方法可以增加它的优先级或其他东西,这样我们就不必更改它的命名空间(kube-system 使其变得至关重要)并且可以保存它?
我发现了一些关于为 pod 添加优先级的问题。但想不出解决办法。应该有一些方法来设置优先级,或者我在这里错过了什么大事?
kubernetes - Kubernetes 上的多个秘密
为单个 Kubernetes 部署管理 3 或 4 个机密的最佳实践。
我们有一个部署,其中一些秘密在所有命名空间中重复,而另一些则是特定于环境的。
我们正在尝试在一个秘密文件和只更改需要的文件之间做出决定,或者运行 2 个以上的秘密,其中一个是 foo-dev-secrets,另一个是 foo-universal-secrets。
我们找不到在这些情况下该怎么做的任何示例,更具体地说,如何管理这些机密,我们知道您只能拥有“每卷一个机密”,但老实说,我们不确定这意味着什么。
随意回应,就好像我们是愚蠢的孩子一样。^_^
kubernetes - 如何在 kubernetes yaml 文件的环境变量中分配集群、命名空间和 pod 名称
我需要将集群、命名空间和 pod 名称从部署在 Kubernetes 集群中的容器传递给 AppDynamics 代理。
我尝试了以下方法,但这不起作用。
和
任何人都可以在这里帮助我如何收集详细信息并传递给 AppD。提前致谢。
kubernetes - Kubernetes,自动服务回退到另一个命名空间
我的 kubernetes 中有多个由多个命名空间表示的环境。
所有应用程序都有在每个命名空间中定义的服务端点。我们有三个环境,dev、alpha 和 beta。(相当于开发、测试和阶段)。这些环境是永久性的,这意味着所有应用程序都在那里运行。
现在在我的团队中,很少有并行开发发生,我们计划为此版本创建多个环境,并且只有少数应用程序是该版本的一部分。
让我们想想这个例子:我正在构建 feature1 并对 app1 和 app2 产生影响
还有 10 个其他应用程序没有任何影响。
因此,对于我的开发和并行测试大多数服务,我必须指向现有的 alpha 或 beta env,并且只指向命名空间中的 app1 和 app2。
我可以通过为所有其他服务使用 ExternalName 映射来实现这一点。
但是如果我有超过 100 个服务并在 yaml 中管理外部端点,我会感到非常困难。
有什么方法可以将所有流量路由到另一个命名空间(如果不存在具有该名称的服务。)
有没有办法为命名空间设置全局 ExternalName?
kubernetes - 我可以将一个服务帐户连接到 Kubernetes 中的多个命名空间吗?
我有几个命名空间 - 假设NS1
和NS2
. 我在那些 - sa1
inNS1
和sa2
in 中创建了服务帐户NS2
。我创建了角色和角色绑定,sa1
以便在. 我想要的是在(比如说只有 Pod Reader 角色)内给予一定的访问权限。NS1
sa2
NS2
sa1
NS2
我想知道这是否可能?
kubernetes - 如何强制删除 Kubernetes 命名空间?
如何强制删除卡在终止中的命名空间?
重建步骤:
- 应用此 YAML
kubectl delete ns delete-me
无法删除
delete-me
。
我发现的唯一解决方法是销毁并重新创建整个集群。
我尝试过的事情:
这些都不起作用或修改命名空间。在任何这些之后,有问题的终结器仍然存在。
编辑 YAML 和kubectl apply
申请:
该命令完成且没有错误,但未更新命名空间。
以下 YAML 具有相同的结果:
kubectl edit
kubectl edit ns delete-me
,并删除终结器。同上完全删除列表。同上删除spec
。同上替换finalizers
为空列表。
这不会显示错误消息,但不会更新命名空间。kubectl edit
再次调用该对象会显示终结器仍然存在。
kubectl proxy &
kubectl proxy &
curl -k -H "Content-Type: application/yaml" -X PUT --data-binary @tmp.yaml http://127.0.0.1:8001/api/v1/namespaces/delete-me/finalize
如上所述,这成功退出但什么也不做。
强制删除
kubectl delete ns delete-me --force --grace-period=0
这实际上会导致错误:
然而,它实际上并没有做任何事情。
等很久
在我设置用于调试此问题的测试集群中,我已经等待了一个多星期。即使命名空间最终可能决定被删除,我也需要在一周内将其删除。
确保命名空间为空
命名空间为空。
etcdctl
我很确定这是一个错误,但我不知道如何解释。它也不起作用。还尝试了--dir
and -r
。
ctron/kill-kube-ns
有一个强制删除 Namespaces 的脚本。这也行不通。
POST
将编辑后的资源添加到 /finalize
返回 405。我不确定这是否是 POST 到 /finalize 的规范方式。
链接
kubernetes - Kubernetes 命名空间的最大数量是多少?
Kubernetes 集群是否有最大数量的命名空间支持?我的团队正在设计一个通过 K8s 运行用户工作负载的系统,我们正在考虑为每个用户使用一个命名空间来在集群中提供逻辑分段,但我们不希望达到可以使用我们服务的用户数量的上限。
我们正在使用 Amazon 的 EKS 托管 Kubernetes 服务和 Kubernetes v1.11。
kubernetes - 如何从流利的位日志记录中排除命名空间
有没有办法排除某些命名空间fluent-bit
?我想排除某些命名空间,这样fluent-bit
就不会将在这些命名空间中创建的所有日志都转发到 ELK。
除了向该命名空间中的每个 pod 添加注释之外,还有其他方法吗?我知道您可以通过 kubectl 更新命名空间中的所有 pod 注释。
kubectl annotate pods --namespace=pks-system --all fluentbit.io/exclude='true'
kubernetes - 如何在 terraform 中导入生成的 Kubernetes 集群的命名空间
在我的 terraform 配置文件中,我在 GKE 上创建了一个 Kubernetes 集群,创建后,设置一个 Kubernetes 提供程序以访问所述集群并执行各种操作,例如设置命名空间。
问题是在没有 terraform 的集群中创建了一些新的命名空间,现在我尝试将这些命名空间导入我的状态似乎由于无法连接到集群而失败,我认为这是由于以下原因(取自 Terraform 的官方文档导入命令):
Terraform 在读取配置文件时的唯一限制是导入提供程序配置不能依赖于非变量输入。例如,提供者配置不能依赖于数据源。
我用来导入命名空间的命令非常简单:
terraform import kubernetes_namespace.my_new_namespace my_new_namespace
我也尝试使用-provdier=""
and-config=""
但无济于事。
我的 Kubernetes 提供程序配置是这样的:
我尝试导入的命名空间资源的一个示例是:
导入命令的结果如下:
错误:获取http://localhost/api/v1/namespaces/my_new_namespace : dial tcp [::1]:80: connect: connection denied
很明显,它注定要失败,因为它试图访问localhost
而不是实际的集群 IP 和配置。
这个用例有什么解决方法吗?
提前致谢。
kubernetes - 控制 k8s 命名空间使用的最大资源
如何控制在特定 k8s 命名空间中运行的所有东西(在给定时刻)使用的最大资源。(最大内存,最大 CPU)?