通过ASP.NET Core Web API获取所有kubernetes pod ip

hi3rlvi2  于 2023-05-28  发布在  Kubernetes
关注(0)|答案(1)|浏览(243)

我通过DevOps在kubernetes上部署了一个ASP.NET Core Web API。我有4个pod。
现在,在我的API中,我有一个清除zentity框架和缓存的方法,但是当我使用postman调用它时,它显然只在被调用的pod上执行。
我希望当我在pod上调用clear cache API时,它会收集所有pod的ip并在每个pod上调用clear cache API。
我可以在API内部收集Pod IP吗?
谢谢

lymgl2op

lymgl2op1#

您可以使用官方的k8s C#客户端检索Pod的IP地址。您还需要相关的RoleRoleBindingServiceAccount来访问集群的kube-apiserver。

using k8s;

namespace simple
{
    internal class PodList
    {
        private static void Main(string[] args)
        {
            // Load from the default kubeconfig on the machine (for local testing).
            var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();

            // Load from in-cluster configuration (for production)
            // var config = KubernetesClientConfiguration.InClusterConfig()

            IKubernetes client = new Kubernetes(config);
            
            var selector = "app=abc";
            var list = client.CoreV1.ListNamespacedPod("default", labelSelector: selector, pretty: true);
            foreach (var item in list.Items)
            {
                Console.WriteLine(item.Status.PodIP);
            }
           
        }
    }
}

查看这些链接:

相关问题