问题标签 [client-go]
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.
kubernetes - 通过 client-go 库使用特定的 secret / configmap 检索对象
我正在尝试使用该client-go
库开发一个简单的控制器。
每次在我的集群上更新秘密和/或 ConfigMap 时,我都需要使用这些秘密 / ConfigMap 对对象执行特定操作。
我知道如何使用informers来观察特定对象的变化。
我的问题是,通过访问 Secret / ConfigMap 来自动列出使用它们的对象(部署、作业等)是否可行。
kubernetes - 将 Pod 规格的数据检索到结构变量中
我一直在尝试检索 pod 详细信息并将这些详细信息填充到 struct 的字段中。但是,在将详细信息填充到结构中时,我确实遇到了错误。
我知道这是我可能缺少的基本东西。
请建议并更正我的代码。
提前致谢。
kubernetes - 在 kubernetes go 程序中出现错误“http:来自 EOF 的 TLS 握手错误”
我有一个 kubernetes pod 配置为支持 https 的网络服务器。此 pod 提供 TLS 握手错误日志。当我们尝试在浏览器上访问负载均衡器服务 IP 时,它会给出错误 - 连接不安全进入不安全。为了安全连接,我们安装了一个自签名证书作为 pod 卷的秘密。如果我们取消对 https 的支持,一切正常。有人可以建议这种行为的可能原因是什么。
go - 如何在自定义控制器中强制对 SharedIndexInformer 进行完全重新同步
我在client-go的帮助下为 Go 中的 Kubernetes 编写了一个自定义控制器。它基于采样控制器,到目前为止运行良好。
可以选择SharedIndexInformer
定期重新同步所有对象。(样品控制器中的参数resyncPeriod
设置为 30 秒。)
有没有办法立即强制重新同步?
似乎处理定期重新同步的代码似乎调用store.Resync()
. 我试过打电话fooInformer.Informer().GetStore().Resync()
。调用成功,但没有发生重新同步。我错过了什么?
我正在使用client-go
v0.17.2
,服务器是 EKS v1.14.9-eks-c0eccc
。
go - Kubernetes 客户端代码生成器:代码能否仅存在于本地而不存在于核心生成器工作的存储库中?
我正在尝试使用 k8s.io/code-generator 生成客户端代码。这些是我遵循的说明:https ://itnext.io/how-to-generate-client-codes-for-kubernetes-custom-resource-definitions-crd-b4b9907769ba
我的问题是,我的 go 模块是否需要存在于存储库中,或者我可以简单地在仅存在于我的本地系统而不存在于任何存储库上的 go 模块上运行 generate-groups.sh 脚本?
我已经尝试过运行它,据我了解,需要有一个存储库,其中包含我本地 go 模块的所有内容。我的理解正确吗?
kubernetes - 如何使用 client-go 从 K8s API 获取 Kubernetes 集群名称
How to get Kubernetes cluster name from K8s API提到
(来自集群内),或
(从集群外部),可用于检索集群名称。这样可行。
有没有办法使用库以编程方式执行相同的操作k8s client-go
?也许使用 RESTClient()?我试过了,但一直在得到the server could not find the requested resource
。
更新
我要做的是cluster-name
从在本地计算机或 k8s 集群中运行的应用程序中获取。k8sclient-go
允许初始化clientset
通过集群或集群外的身份验证。
使用顶部提到的两个命令是可以实现的。我想知道图书馆是否有办法client-go
实现相同的目标,而不是必须这样做kubectl
或curl
取决于服务的运行位置。
go - 如何使用 client-go 重新启动 StatefulSet 的特定 Pod?
我的做法是:
它不起作用,因为 pod 的删除是非阻塞的,这意味着它不会等待 pod 被删除。所以Get
pod 方法返回的是运行状态的 pod。如果我sleep
在 pod 删除后使用几秒钟,那么它工作正常。有没有更好的方法可以在不使用的情况下做到这一点sleep
?
go - 如何使用 client-go 在 Pod 的容器中执行多个命令?
所以我尝试在 Pod 的容器上使用 执行链,即多个命令client-go
,它似乎只适用于某些命令,ls
例如
这是我尝试过的:
当command
变量只是一个简单的ls -l
时,我得到了所需的输出。但是当我尝试做类似的事情'ls -l && echo hello'
时会产生错误command terminated with exit code 2
。如果我只放echo hello
. hello
但是,如果我删除Bourne Shell
前缀/bin/sh -c
并且Command
属性等于,它确实会产生所需的输出string.Fields("echo hello")
,但是这种方法不允许我链接命令。
总而言之,我想做的是在 Pod 的容器上执行一系列命令。
kubernetes - 我可以通过客户端 api 在 kubernetes 中同时创建多个作业吗?
我想通过它的 api 在 kubernetes 中创建数百个工作。有没有办法做到这一点?我现在必须一个一个地创建它们。谢谢。
go - unstructured.UnstructuredList 导致大量 reflect.go 跟踪
我正在尝试使用unstructured.UnstructuredList
来重用configmap
和的逻辑secret
。
但是,在添加 之后ListAndDeployReferredObject
,我开始看到大量Starting reflector *unstructured.Unstructured
添加到我的日志文件中的跟踪。
我是在做一些奇怪的事情还是我错过了一些使用的设置unstructured.Unstructured
?
提前致谢。