我正在使用kube go客户端和kube api来访问kube数据.我目前没有找到任何api调用特定pod的日志.
kubectl logs pod-name
Run Code Online (Sandbox Code Playgroud)
返回特定pod的日志.如何使用go客户端执行此操作?我正在使用kubernetes的v1.0.6.
我可以通过使用获得pod
client.Pods("namespace").Get("pod-name")
Run Code Online (Sandbox Code Playgroud) 来自kubernetes 文档:
pod中的应用程序都使用相同的网络命名空间(相同的IP和端口空间),因此可以相互" 查找 "并使用localhost进行通信.
是否可以使用某些特定于容器的名称而不是locahost?
例如,使用docker-compose up,您使用服务的名称进行通信.[文档]
所以,如果我的docker-compose.yml文件是
version: '2'
services:
web:
build: .
ports:
- "8000:8000"
srv:
build: .
ports:
- "3000:3000"
Run Code Online (Sandbox Code Playgroud)
然后我通过电话srv从内部访问,而不是webhttp://srv:3000/ http://localhost:3000
如何在kubernetes中实现相同的行为?有什么方法可以指定在pods的yaml配置中使用什么名称?
有谁知道 Google\xe2\x80\x99s HTTPS 负载均衡器是否正常工作?\n我正在设置 NGINX 入口服务,但我注意到 Google 负载均衡器是由 Kubernetes 自动设置的。我得到了两个外部 IP,而不是一个。因此,我决定使用 Google 服务,而不是设置 NGINX 负载均衡器。我删除了容器集群,创建了一个全新的容器集群。我在端口 80 上启动了 HTTP Pod 和 HTTP 服务。然后创建了入口服务和 L7 控制器 Pod。现在,当我查看负载均衡器日志时,出现以下错误:
\n\n\n\n事件(api.ObjectReference{种类:“入口”,命名空间:“默认”,\n名称:“echomap”,UID:“9943e74c-76de-11e6-8c50-42010af0009b”,\n API版本:“扩展”,资源版本: “7935”,FieldPath:“”}):类型:\ n \'警告\'原因:\'GCE \' googleapi:错误400:验证失败\ n实例\ n \'projects/mundolytics/zones/us- east1-c/instances/gke-airportal-default-pool-7753c577-129e\':\n 实例最多可以属于一个负载均衡实例组。,\n instanceInMultipleLoadBalancedIgs
\n
当我们为复制控制器创建 yml 时,我们可以为正在创建的 pod 提供标签。
apiVersion: v1
kind: ReplicationController
metadata:
name: redis
spec:
template:
metadata:
labels:
app: redis
tier: backend
Run Code Online (Sandbox Code Playgroud)
驻留在该 Pod 中的容器可以访问这些标签值吗?