有没有办法在kubernetes服务YAML定义中指定自定义NodePort端口?我需要能够在配置文件中显式定义端口.
networking docker kubernetes google-kubernetes-engine flannel
从GCE的VM中,我做了以下操作
gcloud auth activate-service-account --key-file <blah>
# "blah" is a service account key file (JSON) I generated from the web interface
gcloud config set project <project-name>
gcloud config set compute/zone <zone-name>
gcloud set container/cluster <cluster-name>
Run Code Online (Sandbox Code Playgroud)
然后,当我试图跑
gcloud container clusters get-credentials <cluster-name>
Run Code Online (Sandbox Code Playgroud)
它失败并显示错误消息:
错误消息:"错误:(gcloud.container.clusters.get-credentials)ResponseError:code = 403,message = Request的身份验证范围不足."
VM与GKE集群位于同一网络中.我使用来自GCE外部的计算机的相同服务帐户密钥文件,针对"默认"网络上的GKE集群尝试了同样的事情,并且它成功...
我目前在GKE(k8s 1.2)上配置了Ingress,以便将请求转发到我的应用程序的pod.我有一个请求,可能需要很长时间(30秒)和我的应用程序超时(504).我观察到,当我这样做时,我收到的响应不是我自己的504,而是60秒后看起来像Google Loadbalancer的502 .
我玩了不同的状态代码和持续时间,正好在30秒后我开始接收这种奇怪的行为,无论发出的状态代码如何.
任何人都知道如何解决这个问题?有没有办法重新配置这种行为?
如何NodePort在不使用类型的情况下将类型的服务公开给互联网LoadBalancer?我发现的每个资源都是通过使用负载均衡器来实现的.但我不希望负载平衡其昂贵和不必要的用例因为我正在运行一个postgres图像实例,它挂载到永久磁盘,我希望能够使用pgAdmin从我的PC连接到我的数据库.如果有可能,请提供更详细的答案,因为我是Kubernetes,GCE和网络的新手.
只是为了记录和更多的上下文我部署运行我的API服务器的3个副本,我通过负载均衡器与set loadBalancerIP连接到另一个部署,运行一个带有NodePort服务的postgres实例,我的API服务器通过它与之通信我的数据库.我的问题是在没有公共访问的情况下维护数据库很难.
具体到基于Docker的部署,这两者之间有什么区别?由于Google App Engine Flexible现在也支持基于Dockerfile的部署,而且它也是完全托管的服务,似乎它更受首选,而不是在Container Engine上配置Kubernetes部署,不是吗?
有什么用例比使用App Engine灵活使用Google容器引擎更优先?
google-app-engine google-cloud-platform kubernetes google-kubernetes-engine
我在Debian 8上运行带有xvfb的Chrome.它一直有效,直到我打开一个标签并尝试加载内容.这个过程默默地死去......
幸运的是,我已经让它在我当地的码头上运行顺利docker run --shm-size=1G.
Chrome中存在一个已知错误,当/ dev/shm太小时会导致错误.
我正在部署到Container引擎,并检查操作系统规范.主机操作系统有一个固定的7G安装到/ dev/shm,但实际的容器只分配了64M.Chrome崩溃了.
使用kubectl部署到容器引擎时,如何设置/ dev/shm的大小?
docker google-cloud-platform google-kubernetes-engine kubectl
我正在Kubernetes上运行MySQL部署但是看起来我的分配空间不够,最初我添加了一个持续的卷,50GB现在我想扩展它100GB.
我已经看到一个持久的卷声明在创建后是不可变的,但我能以某种方式调整持久卷的大小,然后重新创建我的声明吗?
我正在尝试在GCE Kubernetes中设置Ingress.但是当我访问Ingress中定义的IP地址和路径组合时,我不断收到以下502错误:
这是我跑步时得到的: kubectl describe ing --namespace dpl-staging
Name: dpl-identity
Namespace: dpl-staging
Address: 35.186.221.153
Default backend: default-http-backend:80 (10.0.8.5:8080)
TLS:
dpl-identity terminates
Rules:
Host Path Backends
---- ---- --------
*
/api/identity/* dpl-identity:4000 (<none>)
Annotations:
https-forwarding-rule: k8s-fws-dpl-staging-dpl-identity--5fc40252fadea594
https-target-proxy: k8s-tps-dpl-staging-dpl-identity--5fc40252fadea594
url-map: k8s-um-dpl-staging-dpl-identity--5fc40252fadea594
backends: {"k8s-be-31962--5fc40252fadea594":"HEALTHY","k8s-be-32396--5fc40252fadea594":"UNHEALTHY"}
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
15m 15m 1 {loadbalancer-controller } Normal ADD dpl-staging/dpl-identity
15m 15m 1 {loadbalancer-controller } Normal CREATE ip: 35.186.221.153
15m 6m 4 {loadbalancer-controller } …Run Code Online (Sandbox Code Playgroud) google-compute-engine google-cloud-platform kubernetes google-kubernetes-engine
我按照负载均衡器教程:https: //cloud.google.com/container-engine/docs/tutorials/http-balancer,当我使用Nginx图像时工作正常,当我尝试使用自己的应用程序图像时后端切换到不健康.
我的应用程序重定向到/(返回302),但我livenessProbe在pod定义中添加了一个:
livenessProbe:
httpGet:
path: /ping
port: 4001
httpHeaders:
- name: X-health-check
value: kubernetes-healthcheck
- name: X-Forwarded-Proto
value: https
- name: Host
value: foo.bar.com
Run Code Online (Sandbox Code Playgroud)
我的入口看起来像:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: foo
spec:
backend:
serviceName: foo
servicePort: 80
rules:
- host: foo.bar.com
Run Code Online (Sandbox Code Playgroud)
服务配置是:
kind: Service
apiVersion: v1
metadata:
name: foo
spec:
type: NodePort
selector:
app: foo
ports:
- port: 80
targetPort: 4001
Run Code Online (Sandbox Code Playgroud)
后端运行状况ingress describe ing如下:
backends: {"k8s-be-32180--5117658971cfc555":"UNHEALTHY"}
Run Code Online (Sandbox Code Playgroud)
入口的规则如下:
Rules:
Host Path Backends …Run Code Online (Sandbox Code Playgroud) 我开发了一个 terraform 脚本来在 GKE 上创建一个 k8 集群。
成功创建集群后,我有一组要应用于 k8 集群的 yaml 文件。
如何在我的 terraform 脚本中调用以下命令?
kubectl create <.yaml>
Run Code Online (Sandbox Code Playgroud)