AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1085827
Accepted
FLBzh
FLBzh
Asked: 2021-12-10 04:44:33 +0800 CST2021-12-10 04:44:33 +0800 CST 2021-12-10 04:44:33 +0800 CST

获取 kubernetes pod 以在启动后承担特定的身份/角色/作业

  • 772

我在这里展示的是我的设置的简化版本,并且语法错误。

我有一个高级“代理”列表,我想在 kubernetes 集群上部署为 pod。

这个集群中的一些节点有特殊的硬件,一些没有,但是所有的 pod 都应该使用同一个容器。

可能看起来像(再次:语法错误):

agent1 wlan
...
agent8 wlan
agent9 wlan rs232.1
agent10 wlan rs232.2

我设置了一个大致看起来像这样的部署(语法错误):

deployment (standard nodes)
  replicas: 8
---
deployment (rs232, terminal 1)
  replicas: 1
  nodeSelector:
    rs232=1
  env:
    rs232=1 (because nodeSelector can't be passed nicely afaik)
---
deployment (rs232, terminal 2)
  replicas: 1
  nodeSelector:
    rs232=2
  env:
    rs232=2

我希望这些代理中的每一个都启动并从列表中获取一个身份,当然同时拥有匹配的硬件。

所以就像一个 pod 会像这样与一个角色分发服务交谈:

pod - Hi, I'm pod/container-xyz and I have env/label/annotation rs232=2
service - Hi, well then you are now agent10
pod - OK I'll do the work of agent10 then
(service - cool, I'll add agent10 as an alias to you in the cluster DNS) <- that will be my next question

没有特殊硬件的代理也是如此:该服务为每个代理赋予一个代理角色。

我尝试了 StatefulSet 的一些东西,但这不符合要求(因为各种 nodeSelector 并且它们启动速度非常慢)。

我开始考虑一个专用的自我实现的服务器 pod,它会保留我的代理列表并将它们租给匹配的硬件(有点像 dhcp 服务器),但我很确定我不是唯一遇到这个问题的人,而且一定有一个解决方案。我快速查看了 Zookeeper,但我认为它不适合我。我可能找不到解决方案,因为我的词汇量不是我猜的正确词汇。

有人有好主意吗?我是否朝着正确的方向前进?

kubernetes
  • 1 1 个回答
  • 73 Views

1 个回答

  • Voted
  1. Best Answer
    vaizki
    2022-02-03T04:08:33+08:002022-02-03T04:08:33+08:00

    我可能会使用MetaController CompositeController和定义代理的自定义资源来实现这一点。虽然需要编码。它看起来比实际复杂得多。

    基本上,您会定期通过 HTTP 接收描述资源当前状态的同步挂钩,并使用 JSON 响应以创建/销毁它们。

    • 1

相关问题

  • Nvidia Config 后 Containerd 无法启动

  • 在使用 kubeadm 引导集群之前,如何修改 CoreDNS 配置映射?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve