问题标签 [kubernetes-go-client]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1764 浏览

go - 为 Kubernetes go-client 使用 HTTP 代理

我正在使用 kubernetes 的 go-client 来控制我的 GKE 集群上的部署,但是该客户端将在代理后面运行,并且需要通过它发出所有与 Internet 绑定的请求。但我似乎找不到一种方法来配置我的 KubeClient 以通过代理发出所有 http 请求。

我的代码与此处的示例没有太大区别 - https://github.com/kubernetes/client-go/blob/master/examples/out-of-cluster-client-configuration/main.go

0 投票
2 回答
664 浏览

go - 谷歌容器集群作为配置

我正在尝试将kubernetes go-client与 cloud.google.com/go/container 一起使用。我使用 google cloud go 容器包创建集群,然后我想使用 go-client 在该集群上部署。集群外示例使用 kube 配置文件来获取集群的凭据。但是因为我刚刚在我的应用程序中创建了这个集群,所以我没有那个配置文件。

如何使用“google.golang.org/genproto/googleapis/container/v1”集群设置“k8s.io/client-go/rest”配置?必填字段是什么?下面的代码是我目前拥有的(没有显示实际的 CA 证书)。

它导致此错误:x509:由未知机构签名的证书。因此,显然缺少一些东西。任何其他方法都非常受欢迎!提前致谢

0 投票
1 回答
143 浏览

kubernetes - 如何使用 kubernetes go 客户端管理现有的自定义对象?

我正在编写一个自定义控制器,它将监听我定义的 CR 并更新/创建其他资源(由 Istio 定义的资源)。那里的所有示例都显示了如何处理本地资源或在同一包中创建的自定义资源。但是我要管理的资源已经存在并且在集群中注册了。所以我不明白的是如何在 Go 代码中创建或更新它们而不用我自己的类型描述它们。

0 投票
1 回答
695 浏览

kubernetes - 在客户端 go 中读取 kubernetes pod 的日志时找不到资源

首先创建一个 Pod 部署

现在已经部署了 pod,我现在正在阅读日志

随后从此处读取日志 Pod 已成功创建,但客户端似乎无法找到出现错误的资源Error2: the server could not find the requested resource (get pods.meta.k8s.io mithu)

如果我尝试从命令行获取日志,则没有问题。我认为主要问题是 pods.meta.k8s.io 和命令行 args pods

0 投票
2 回答
9202 浏览

kubernetes - 在client-go中观察kubernetes pod状态是否完成

我正在 k8 客户端创建一个 pod,并制作一个手表以在 pod 完成时收到通知,以便我可以读取 pod 的日志。手表界面似乎没有提供频道上的任何事件。这是代码,我将如何收到 pod 状态现已完成并准备好读取日志的通知

0 投票
1 回答
746 浏览

kubernetes - 设置 CLOUDSDK_CONFIG 时无法使用 go 客户端访问 Kubernetes 集群

我在 GKE 上有一个 Kubernetes 集群。即使在正确设置了 KUBECONFIG="/tmp/kubeconfigxvz" 之后,当我执行kubectl get pods命令时也会失败并出现以下错误

当我设置CLOUDSDK_CONFIG=/tmp/customdir命令开始工作。

go 客户端如何实现相同的目标?

=== 更新 ===

创建 go 客户端时,我将正确的文件指针传递 clientcmd.BuildConfigFromFlags("", *tmpKubeConfigFile)tmpKubeConfigFile指向/tmp/kubeconfigxvz. 但我认为这还不够,go-client 还需要来自CLOUDSDK_CONFIG目录的更多信息,我认为它需要会话信息或凭据或其他东西。

创建 go-client 时是否也可以传递此 CLOUDSDK_CONFIG ?

BuildConfigFromFlags它接受指向 kubeconfig 文件的指针的输入并返回一个config对象,该对象可以传递给kubernetes.NewForConfig(config)创建客户端的对象。是否有可能或是否存在类似的功能来传递 CLOUDSDK_CONFIG 并返回 go-client 或创建配置?

0 投票
0 回答
354 浏览

kubernetes - 从 S3 上的 kops 配置创建 kubernetes go-client 配置

我一直在使用https://github.com/kubernetes/client-go/blob/master/examples/out-of-cluster-client-configuration/main.go#L45作为在我的 go 中创建 Kubernetes 客户端的指南代码。

但是,我习惯于使用 kops ( https://github.com/kubernetes/kops ) 将我的本地配置kubectl为指向我当前正在处理的集群。我使用的过程如下:

其中 s3 存储桶包含许多目录,每个目录都包含 kops 正确配置所需的详细信息kubectl

我无法弄清楚如何使用相同的模式(或相同的配置文件)在 go.configclientset中配置 kubernetes。

我正在尝试的一种策略是复制本地生成~/.kube/config的仅包含我要定位的集群。然后我的代码如下所示:

然而,这并不是很好。我希望能够指定 kops 配置的 URL。

为了使这更容易,更简单和更清洁,我是否缺少一些重要的东西?

0 投票
2 回答
4669 浏览

kubernetes - 如何在 kubernetes go client pod 规范中提供资源限制?

我想提供相应的资源限制,例如:

我该如何继续这样做。我尝试添加 Limits 及其映射键值对,但它似乎是一个非常嵌套的结构。关于如何在 kube client go 中提供资源似乎没有任何示例。

0 投票
2 回答
2146 浏览

kubernetes - K8s Go 客户端将对象转换为 kubectl 资源 yamls

我不确定标题是否是正确的术语..但我基本上想使用 go-client 并获取符合 kubectl 的对象(yamls)。

即部署资源将是:

我可以通过 go-client 从我的 k8s 集群中获取部署,如下所示:

如果我要编组部署并保存到文件,则结构为:

显然与 kubectl 文件所期望的有很大不同。

(虽然我可以使用 go-client deployment.create(obj) 来创建该部署)。

如果我想创建一个 kubectl 有效资源,我可以创建一个符合该类型的自定义结构,然后手动填写值。

有没有办法自动做到这一点?或目前存在的一些辅助功能?

本质上,我想将 v1.Deployment 结构转换为通用的 kubectl yaml 资源。

0 投票
2 回答
6534 浏览

go - 如何使用 go-client 在 Kubernetes 中获取 pod 的状态

我正在尝试删除我的 kubernetes 集群中的一个 pod,然后检查它的状态以查看该 pod 需要多长时间才能关闭并再次启动。对于使用 go-client 获取特定 pod 状态的第二部分,我找不到任何有用的示例。任何帮助表示赞赏。