我按照负载均衡器教程: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) 我创建了一个由三个节点组成的集群:一个主节点,两个小节点.如何在Kubernetes中检查群集IP?它是主节点的IP吗?
无法创建群集.<>已被指定为"容器引擎管理员"和"容器引擎集群管理员"的角色
Error from server (Forbidden): error when creating "prometheus-
operator/prometheus-operator-cluster-role.yaml":
clusterroles.rbac.authorization.k8s.io "prometheus-operator"
is forbidden: attempt to grant extra privileges: [{[create]
[extensions] [thirdpartyresources] [] []} {[*]
[monitoring.coreos.com] [alertmanagers] [] []} {[*]
[monitoring.coreos.com] [prometheuses] [] []} {[*]
[monitoring.coreos.com] [servicemonitors] [] []} {[*]
[apps] [statefulsets] [] []} {[*] [] [configmaps] [] []}
{[*] [] [secrets] [] []} {[list] [] [pods] [] []} {[delete]
[] [pods] [] []} {[get] [] [services] [] []} {[create]
[] [services] [] []} {[update] [] [services] [] []} {[get] …Run Code Online (Sandbox Code Playgroud) 我们的一些容器在当前部署在Container Engine集群中的实例类型之上的内存运行得更好.是否有建议的做法是在创建容器引擎集群后为较大的实例重建容器引擎模板?
例如,从GCE实例n1-standard-2转到n1-highmem-8,运行容量超过8GB的容器?
我有两个服务,集群K1中的S1和集群K2中的S2.它们有不同的硬件要求.服务S1需要与S2通信.
出于安全原因,我不想公开S2的公共IP.通过网络负载平衡在K2集群的计算实例上使用NodePorts可以灵活地实现,因为每次在K2中添加/删除节点时,我都必须在目标池中添加/删除K2的计算实例.
是否有类似"服务选择器"的东西来自动更新目标池?如果没有,这个用例还有其他更好的方法吗?
我已经安排了一个在Kubernetes中作为Cronjob运行的应用程序.当代码发生变化时,我正在改变CronJob中的图像.
我正在寻找一个选项,我可以禁用当前运行的CronJob并使用新创建的Image部署新的CronJob.
如何在不删除yaml的情况下禁用Kubernetes中的Cronjob?
我试图在同一个Kubernetes pod上运行两个Docker,我希望其中一个Docker容器始终在另一个之前运行.我记得学习如何在pod配置文件中指定这种依赖,但现在无法找到.Kubernetes 文档也没有解释它.
下面是我从另一个Stackoverflow问题中采用的两个容器的示例pod配置.我应该如何改变这种吊舱配置来运行容器type1之前type2?
{
"id": "podId",
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "podId",
"containers": [{
"name": "type1",
"image": "local/image"
},
{
"name": "type2",
"image": "local/secondary"
}]
}
},
"labels": {
"name": "imageTest"
}
}
Run Code Online (Sandbox Code Playgroud)
提前谢谢,Nodir.
如何以yaml格式描述此命令?
kubectl create configmap somename --from-file=./conf/nginx.conf
Run Code Online (Sandbox Code Playgroud)
我期望做类似下面的yaml,但它不起作用
apiVersion: v1
kind: ConfigMap
metadata:
name: somename
namespace: default
fromfile: ./conf/nginx.conf
Run Code Online (Sandbox Code Playgroud)
任何的想法?
google-cloud-platform kubernetes google-kubernetes-engine kubectl
有没有一种简单的方法可以从现有集群导出 kubeconfig 文件,以便我可以在 CI/CD 中使用它?
在我的gcloud控制台中,它显示了我定义的入口的以下错误:
同步时出错:评估入口规范时出错:服务"monitoring/kube-prometheus"是"ClusterIP"类型,预期"NodePort"或"LoadBalancer"
我使用traefik作为反向代理(而不是nginx),因此我使用ClusterIP定义入口.据我所知,该过程所有流量都通过traefik服务代理(其中定义了Loadbalancer入口),因此我的所有其他入口应该实际上有一个ClusterIP而不是NodePort或Loadbalancer?
题:
那么为什么Google Cloud警告我它期望NodePort或LoadBalancer?
google-cloud-platform gcloud kubernetes google-kubernetes-engine