Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 我们如何使用kubernetes api获取kubernetes集群信息转储_Go_Kubernetes - Fatal编程技术网

Go 我们如何使用kubernetes api获取kubernetes集群信息转储

Go 我们如何使用kubernetes api获取kubernetes集群信息转储,go,kubernetes,Go,Kubernetes,kubernetes是否在其客户端库中提供API以获取集群信息转储。 我浏览了它的API,发现任何API都可以做到这一点 我现在做的是: kubectl集群信息转储--输出目录=“dumpdir” 我想要的是: 使用客户机go/kubernetes api库,进行api调用以从golang应用程序获取此转储。可能吗 据我所知: 每个资源都有单独的API,可以提供集群信息转储提供的所有信息,但我想通过一个API调用来实现 例如: 戈朗代码: coreClient := kubernetesapi.

kubernetes是否在其客户端库中提供API以获取集群信息转储。 我浏览了它的API,发现任何API都可以做到这一点

我现在做的是: kubectl集群信息转储--输出目录=“dumpdir”

我想要的是: 使用客户机go/kubernetes api库,进行api调用以从golang应用程序获取此转储。可能吗

据我所知: 每个资源都有单独的API,可以提供集群信息转储提供的所有信息,但我想通过一个API调用来实现

例如: 戈朗代码:

coreClient := kubernetesapi.CoreV1()
nodeList, err := coreClient.Nodes().List(metav1.ListOptions{})
这将给我一个节点列表


是否有一个API返回“kubectl集群信息转储”将提供的内容。因此,我可以通过编程方式获取所有详细信息

备份和恢复群集资源:

使用ark进行群集备份和恢复:

ark schedule create <SCHEDULE NAME> --schedule "0 7 * * *"

ark restore create --from-backup <BACKUP-NAME>
ark计划创建--计划“0 7***”
ark恢复创建--从备份

您可以通过在
kubectl cluster info
命令中列出带有verbose选项的输出来捕获API调用:

kubectl集群信息转储-v 9

例如:

curl-k-v-XGET-H“Accept:application/json,/“-H”用户代理: kubectl/v1.12.1(linux/amd64)kubernetes/4ed3216“ ''

在群集中获取用于授权目的的令牌:

MY_TOKEN=“$(kubectl get secret-o jsonpath='{$.data.TOKEN}'| base64-d)”

现在可以对目标资源进行API调用:

curl -k -v -H "Authorization : Bearer $MY_TOKEN" https://10.142.0.3:6443/api/v1/namespaces/kube-system/events
请记住,您可能需要角色绑定才能为您的服务帐户授予查看权限:

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: default-view
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: view
subjects:
  - kind: ServiceAccount
    name: default
    namespace: default

恐怕没有这样的API可以做到这一点<代码>kubectl集群信息转储也基于k8s sdk实现

但是您可以根据自己的需要参考实现和定制


我想我的问题不清楚。我实际上需要使用kubernetes api执行kubectl集群信息转储操作。i、 例如,我需要通过从我的程序调用API来实现集群的整个转储,而不是手动运行命令“kubectl cluster info dump”,我想这是不可行的,因为Kubernetes API没有提供直接的API调用来实现这一点,关于这一点,@wilbeibi已经在他的回答中提到了。我需要在某个时间拍摄集群的快照。我知道我可以使用API获得像config map这样的单个资源,但是是否有一个API可以为我提供使用API手动进行集群信息转储时可以获得的所有资源kubectl@Bharath对于该用例,您可以使用arkYes Heptio的Ark提供集群的备份,但这需要进行设计更改,我们目前不寻求任何设计更改。另外,我现在需要的信息只是用于手动分析,这可能会为我们开发一个新的应用程序。因此,我正在寻找一个程序级的解决方案,特别是使用kubernetes库。感谢您的确认。我现在已经编写了一个自定义类,它做了类似的事情。这肯定会帮助我把它提炼成更清洁的解决方案。