在我有一个vm(centos 7.4,主机名kube-2.novalocal,ip172.50.10.10)之前,我在其中安装了master和kubelet,我可以通过
172.50.10.10/uaa/login来访问我的入口。在集群内部,我使用ClusterIP,并将ingress nginx部署为ingress上的节点端口。由于它是重定向/重写的,所以我通过避免忽略端口将nodeport更改为80。服务url是
http://172.50.10.10/uaa/login
。而且效果很好。
现在我添加了两个节点(kube-1.novalocal/172.50.10.1和kube-3.novalocal/172.50.10.4)。我可以看到ingress由kubernetes部署在kube-3上。novalocal。它经常重启,几乎每分钟都会重启。我也不知道入口服务的url。是否<代码>http://kube-2.novalocal/uaa/login或http://kube-3.novalocal/uaa/login?
为什么它会如此频繁地重新启动?
我将所有相关的yaml文件、日志文件、控制台命令输出和仪表板信息放在这里。
[centos@kube-2 ingress]$ sudo kubectl get po
NAME READY STATUS RESTARTS AGE
gearbox-rack-api-gateway 1/1 Running 0 15h
gearbox-rack-config-server 1/1 Running 0 15h
gearbox-rack-eureka-server 1/1 Running 0 15h
gearbox-rack-rabbitmq 1/1 Running 0 15h
gearbox-rack-redis 1/1 Running 0 15h
gearbox-rack-uaa-service 1/1 Running 0 15h
gearbox-rack-zipkin-server 1/1 Running 0 15h
ingress-nginx-5c6d78668c-brlsv 1/1 Running 279 15h
nginx-default-backend-6647766887-nbwhl 1/1 Running 0 15h
在kube-3.novalocal访问入口url(172.50.10.4):
[centos@kube-2 ingress]$ curl http://172.50.10.4/uaa/login
curl: (7) Failed connect to 172.50.10.4:80; Connection refused
ingress nginx日志:
[centos@kube-2 ingress]$ sudo kubectl logs ingress-nginx-5c6d78668c-frb2r
-------------------------------------------------------------------------------
NGINX Ingress controller
Release: 0.15.0
Build: git-df61bd7
Repository: https://github.com/kubernetes/ingress-nginx
-------------------------------------------------------------------------------
W0703 02:16:35.966965 7 client_config.go:533] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.
I0703 02:16:35.967483 7 main.go:158] Creating API client for https://10.96.0.1:443
Dashborad图片如下:
ingress-nginx-res.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
rules:
- host:
http:
paths:
- path: /
backend:
serviceName: gearbox-rack-api-gateway
servicePort: 5555
入口nginx控制。亚马尔
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
spec:
type: NodePort
selector:
app: ingress-nginx
ports:
- name: http
port: 80
nodePort: 80
---
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: ingress-nginx
spec:
replicas: 1
template:
metadata:
labels:
app: ingress-nginx
spec:
terminationGracePeriodSeconds: 60
serviceAccount: lb
containers:
- image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.15.0
name: ingress-nginx
imagePullPolicy: Always
ports:
- name: http
containerPort: 80
protocol: TCP
- name: https
containerPort: 443
protocol: TCP
livenessProbe:
httpGet:
path: /healthz
port: 10254
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 5
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
args:
- /nginx-ingress-controller
- --default-backend-service=$(POD_NAMESPACE)/nginx-default-backend
kubeadm.yaml
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
apiServerExtraArgs:
service-node-port-range: 80-32767
networking:
podSubnet: 192.168.0.0/16
kubernetesVersion: v1.10.3
featureGates:
CoreDNS: true
=================================================
Ingress nginx controller更新为0.16.2,部署与以前相同,Ingress nginx几乎每两分钟继续重启一次。
NAME READY STATUS RESTARTS AGE
ingress-nginx-59b74f9684-lgm2k 0/1 CrashLoopBackOff 9 20m 192.168.179.5 kube-3.novalocal
根本原因可能是部署硬件环境。对于我的virtualbox,没有重新启动。当我使用基于openstack的公司vm时,ingress nginx控制器总是重新启动。
NodePort的使用假设您能够访问所有pod,因此您应该能够同时使用http://kube-2.novalocal/uaa/login以及http://kube-3.novalocal/uaa/login.
您可以在此处找到有关NodePort的更多信息:https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types”NodePort:在静态端口(NodePort)上公开每个节点IP上的服务。NodePort服务将路由到的ClusterIP服务会自动创建。您将能够通过请求:从集群外部联系NodePort服务。”
关于您的ingres-nginx频繁重启:尝试将您的nginx控制器升级到最新版本并返回结果。您可以在此处找到它:https://github.com/kubernetes/ingress-nginx
另外,请看一看这篇具有类似问题的文章:https://github.com/kubernetes/ingress-nginx/issues/2450
我有一个运行在minikube(已启用加载项)中的nginx ingress,它有几个吊舱和服务,ingress具有以下配置: 当我在集群之外时,以下各项工作正常: 但是,当我在集群内时,我希望容器能够使用我的入口模板中列出的主机名相互通信。例如,我希望以下方法可以工作,但事实并非如此: 相反,它返回实际api的结果。信息网站,我没有隶属关系。首先,有人能确认这是可行的吗? 非常感谢。
我使用的是infra team(不是mini kube)提供的kubernetes集群,我已经创建了带有所有配置的traefik入口控制器,入口容器,我们的应用程序正在集群中运行。现在我想使用域名或IP地址访问应用程序,为此,我创建了一个入口资源,如下所示 这里我没有得到的是主机名,因为应用程序在集群中运行,这个主机名应该是集群主节点名吗?实际prod环境中的主机名或ip地址应该是什么。 注意:我
你好kubernetes专家, 我有一个kubernetes集群,它运行在4个raspberry PI上,docker 18.04ce和kubernetes 1.9.7。 我部署了一个服务,可以通过集群IP从集群内访问此服务。我还部署了一个入口,如https://docs.traefik.io/user-guide/kubernetes/和如何让库伯内特斯IngresPort 80在裸机单节点集群
我不知道如何在Kubernetes集群(不是minikube)上设置入口控制器。我遵循的每一个nginx入口设置都产生了一个错误,控制器设置不正确。基本上,我想要一个与minikube插件等效的命令来启用入口。谢谢 编辑1- 我正在遵循中提到的安装步骤https://kubernetes.github.io/ingress-nginx/deploy/我已经尝试了baremetal、cloud和其他
404 GKE入口错误。我在Google Kubernetes集群上。 创建了一个部署 Kubectl创建部署我的部署--image=nginx kubectl公开部署my-部署--name=my-svc--type=NodePort--port=80 入口描述 这会自动创建一个负载平衡器,IP为34.95.98.151 添加了一个条目到我的Windows主机文件位于“C:\Windows\Sys
我可以从外部通过域名导航到我的集群,并看到具有有效HTTPS的控制面板(在15672内部)。所以入口已经启动并运行,我可以创建队列等等。因此rabbitmq工作正常。 但是,我无法使TCP部分工作,以便从集群外部发布到队列。 我已经通过azure portal接口为控制器(nginx-ingress-ingress-nginx-controller)编辑了我认为是configmap(azure-c