当前位置: 首页 > 知识库问答 >
问题:

如何使用kubernetes客户端获取self-pod

柯琛
2023-03-14

我有一个用Go编写的kubernetes服务,并且正在使用client-go访问kubernetes apis。

我需要服务自己的Pod的Pod

PodInterface允许我迭代所有pod,但我需要一个“自我”概念来获取当前正在执行我的代码的pod。

通过阅读< code >/var/run/secrets/kubernetes . io/service account/namespace 并在名称空间中搜索与< code>hostname匹配的pod,我可以确定“self”pod。

这是正确的解决方案吗?

共有1个答案

穆单鹗
2023-03-14

将< code>POD_NAME和< code>POD_NAMESPACE作为环境变量公开给您的POD。稍后使用这些值来获得您自己的pod对象。

apiVersion: v1
kind: Pod
metadata:
  name: dapi-envars-fieldref
spec:
  containers:
    - name: test-container
      image: k8s.gcr.io/busybox
      command: [ "sh", "-c"]
      args:
      - while true; do
          echo -en '\n';
          printenv MY_POD_NAME MY_POD_NAMESPACE;
          sleep 10;
        done;
      env:
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: MY_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
  restartPolicy: Never

Ref:环境-变量-公开-pod-信息

 类似资料:
  • 我已经在本地机器中配置了minikube,并打算在外部使用kubernetes。我在kubernetes中创建了一个服务帐户,使用它的秘密,我可以使用下面的命令获得访问令牌。 我正在以贝娄启动配置。 我能知道如何使用fabric8 java客户端获得上面描述的serviceAccountAccessToken吗?

  • 我有一个Java服务器应用程序,它通过TLS从GRPC客户端获取数据并在服务器上处理。现在我想使用多个客户端。要向客户端分配接收到的事件,我想读取客户端证书并使用证书的DN分配事件。如何获取客户端证书? 我发现这个构建服务器:https://github.com/grpc/grpc-java/blob/master/SECURITY.md#mutual-tls 然后你应该实现一个服务器拦截器 }

  • 问题内容: 如何使用PHP或javascript获取MAC地址… 问题答案: 如果客户端正在运行Windows,并允许您安装ActiveX控件,则可以使用javascript获取客户端的MAC地址。 http://www.eggheadcafe.com/community/aspnet/3/10054371/how-to-get-client-mac- address.aspx http://co

  • 问题内容: kubernetes go客户端有很多方法,我找不到如何获得特定(或所有Pod)的当前CPU和RAM使用率的方法。 有人可以告诉我我需要调用什么方法才能获得Pod和节点的当前用法? 我的NodeList: Kubernetes Go客户端:https : //github.com/kubernetes/client-go 指标包:https : //github.com/kuberne

  • 我正在为Kubernetes使用fabric8 java客户端库。我无法找到对容器执行更新操作的最佳方法。基本上,我想做的是,我已经创建了一个容器映像为“nginx”的pod,现在我想更新这个映像为“nginx:1.16.1”。 我想做的是

  • 我在GKE中创建了一个类型为LoadBalancer的kubernetes服务。 这是一个nginx服务,尝试获取源客户端IP。喜欢 但结果将是: 就像在kubernetes IP中一样。 $http_x_forwarded_for为空。 我不知道为什么这和文件上说的不一样。 https://cloud.google.com/load-balancing/docs/network 网络负载平衡是一

  • 我有Spring座后端和角前端。 身份验证是使用请求JSON正文中带有用户名和密码的“/登录”URL的POST请求来执行的(我使用基于表单的身份验证)。REST后端回复OK代码。一切都很好,我可以执行来自前端的其他需要身份验证的请求。 但是前端需要知道身份验证用户的角色是什么,以便它可以显示正确的视图/记录。我们从哪里可以在前端得到这个角色?我们从身份验证中得到的唯一响应是OK,这对于REST来说

  • 问题内容: 我想获取使用我网站的客户IP地址。我正在使用PHP superglobal: 但是我看到它不能使用此提供正确的IP地址。我得到了我的IP地址,发现它与我的IP地址不同,并且我还可以在某些网站上看到我的IP地址,例如: 我粘贴了提供PHP功能的IP地址,但是此网站未显示任何结果。这个问题是怎么发生的,如何获得客户端的IP地址? 问题答案: 获取访问者/客户的IP地址的最简单方法是使用或变