当前位置: 首页 > 知识库问答 >
问题:

从Kubernetes吊舱访问另一个集群

耿炎彬
2023-03-14

我在GKE负责詹金斯。构建的一个步骤是使用< code>kubectl部署另一个集群。我在jenkins容器中安装了gcloud-sdk。正在讨论的构建步骤是这样做的:

gcloud auth activate-service-account --key-file /etc/secrets/google-service-account
gcloud config set project XXXX
gcloud config set account xxxx@xxx.iam.gserviceaccount.com
gcloud container clusters get-credentials ANOTHER_CLUSTER

然而,我得到了这个错误(虽然它在本地正常工作):

kubectl get pod
error: You must be logged in to the server (the server has asked for the client to provide credentials)

注意:我注意到,在没有配置的情况下(~/.kube为空),我可以使用kubectl并访问pod当前运行的集群。我不知道它是如何做到的,它是否使用/var/run/secrets/kubernetes。io/serviceaccount/访问集群

编辑:尚未测试它是否有效,但向目标集群添加服务帐户并在jenkins中使用该帐户可能有效:

http://kubernetes.io/docs/admin/authentication/(搜索詹金斯)

共有1个答案

应俊爽
2023-03-14

看到这里的回答:kubectl oauth2使用容器引擎认证失败

在执行gcloud auth-activate service account--key file/etc/secrets/google service account之前,您需要做的是将gclouds设置为旧的auth模式:

CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True
gcloud config set container/use_client_certificate True

但我没有成功使用其他env变量:GOOGLE_APPLICATION_CREDENTIALS

 类似资料:
  • 我已经在节点(node1)上的pod(pod1)上部署了一个Spring Boot应用程序。我还在不同节点(node2)上的另一个pod(pod2)上部署了JMeter。我试图从POD2执行自动负载测试。为了执行负载测试,我要求为每个测试用例重新启动pod1。如何从POD2重新启动pod1?

  • 我们正在使用Docker 1.19运行库伯内特斯(1.18) Container是一个基于Java13的Spring启动应用程序(使用基本图像作为openjdk: 13-alpin),下面是内存设置。 豆荚: 内存-最小448M,最大2500M cpu-最小值0.1 容器: Xms:256M,Xmx:512M 当流量发送更长时间时,容器会突然重新启动;在Prometheus中,我可以看到Pod内存

  • 尝试从同一命名空间中的另一个服务连接到一个服务。使用ClusterIP创建服务。创建服务后使用该Ip访问服务。请求有时成功,有时失败,我看到两个pod都启动并运行。以下是服务配置

  • 我的Java微服务正在AWS EC2实例上托管的k8s集群中运行。 我有大约30个微服务(nodejs和Java8的良好组合)在K8s集群中运行。我面临一个挑战,我的java应用程序pods意外重启,导致应用程序5xx数量增加。 为了调试它,我在pod和应用程序中启动了一个newrelic代理,并找到了以下图表: 在我可以看到的地方,我的Xmx值为6GB,我的用途最大为5.2GB。 这清楚地表明J

  • 我对Kubernetes是新来的。 我发现了2个pod优先级选项-优先级类别和服务质量。它们之间有什么不同? (https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/https://kubernetes.io/docs/tasks/configure-pod-container/quality-servi

  • 我的要求是在自定义指标上扩展POD,如队列中的挂起消息,PODS必须增加以处理作业。在kubernetes,Scale up在普罗米修斯适配器和普罗米修斯操作员中工作得很好。 我在pods中有长时间运行的进程,但HPA检查自定义度量并试图缩小规模,因为这个进程杀死了操作的中间并丢失了消息。我如何控制HPA只杀死没有进程运行的自由豆荚。 序列查询:‘{namespace=“default”,serv