如何使用 Kubernetes C# .net 客户端获取自定义资源的状态?
How to get status of custom resource using Kubernetes C# .net Client?
安装 eck-operator 后,我使用下面的 yaml 清单创建了一个 Elasticsearch
资源 here。
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: quickstart
spec:
version: 7.15.0
nodeSets:
- name: default
count: 1
config:
node.store.allow_mmap: false
应用此清单后,我可以通过执行以下命令手动获取状态:
kubectl get elasticsearch -n ecknamespace
输出如下:
> $ kubectl get elasticsearch -n ecknamespace
NAME HEALTH NODES VERSION PHASE AGE
quickstart green 3 7.15.0 Ready 3d17h
如何使用 Kubernetes C# Client,以编程方式获取上述数据?
客户端包含有关如何与自定义资源交互的 example。
它将要求您定义文件 cResource.cs
和 CustomResourceDefinition.cs
中描述的 classes。
之后,以下代码应列出 elasticsearch
资源:
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
var client = new GenericClient(config, "elasticsearch.k8s.elastic.co", "v1", "elasticsearches");
var elasticSearches = await client.ListNamespacedAsync<CustomResourceList<CResource>>("default").ConfigureAwait(false);
foreach (var es in elasticSearches.Items)
{
Console.WriteLine(es.Metadata.Name);
}
EDIT 在 OP 的评论之后:要查看自定义资源的所有字段,需要编辑 CustomResource
class(文件 CustomResourceDefinition.cs
在示例中)与相应的字段。
安装 eck-operator 后,我使用下面的 yaml 清单创建了一个 Elasticsearch
资源 here。
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: quickstart
spec:
version: 7.15.0
nodeSets:
- name: default
count: 1
config:
node.store.allow_mmap: false
应用此清单后,我可以通过执行以下命令手动获取状态:
kubectl get elasticsearch -n ecknamespace
输出如下:
> $ kubectl get elasticsearch -n ecknamespace
NAME HEALTH NODES VERSION PHASE AGE
quickstart green 3 7.15.0 Ready 3d17h
如何使用 Kubernetes C# Client,以编程方式获取上述数据?
客户端包含有关如何与自定义资源交互的 example。
它将要求您定义文件 cResource.cs
和 CustomResourceDefinition.cs
中描述的 classes。
之后,以下代码应列出 elasticsearch
资源:
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
var client = new GenericClient(config, "elasticsearch.k8s.elastic.co", "v1", "elasticsearches");
var elasticSearches = await client.ListNamespacedAsync<CustomResourceList<CResource>>("default").ConfigureAwait(false);
foreach (var es in elasticSearches.Items)
{
Console.WriteLine(es.Metadata.Name);
}
EDIT 在 OP 的评论之后:要查看自定义资源的所有字段,需要编辑 CustomResource
class(文件 CustomResourceDefinition.cs
在示例中)与相应的字段。