代码之家  ›  专栏  ›  技术社区  ›  user84592

kubernetes集群模式,什么是入口URL?

  •  1
  • user84592  · 技术社区  · 7 年前

    在我只有一个虚拟机(Centos 7.4,主机名kube-2.novalocal,ip 172.50.10.10 )之前,我在其中安装了master和kubelet,我可以通过 172.50.10.10/uaa/login>访问我的入口。在集群中,我使用clusterip,并将入口nginx部署为入口上的nodeport。因为它是重定向/重写的,所以我通过避免省略端口将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
    名称就绪状态重新开始老化
    齿轮箱机架API网关1/1运行0 15小时
    齿轮箱机架配置服务器1/1运行0 15小时
    齿轮箱机架Eureka服务器1/1运行0 15小时
    齿轮箱机架Rabbitmq 1/1运行0 15h
    齿轮箱机架Redis 1/1运行0 15小时
    齿轮箱机架UAA服务1/1运行0 15小时
    齿轮箱机架Zipkin服务器1/1运行0 15小时
    入口-nginx-5c6d78668c-brlsv 1/1运行279 15h
    nginx-default-backend-6647766887-nbwhl 1/1运行0 15小时
    

    访问kube-3.novalocal(172.50.10.4)中的入口URL:

    [centos@kube-2 entress]$curl http://172.50.10.4/uaa/login
    curl:(7)连接到172.50.10.4:80失败;连接被拒绝
    

    入口nginx日志:

    [centos@kube-2 ingress]$sudo kubectl logs ingress-nginx-5c6d78668c-frb2r
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    nginx入口控制器
    版本:0.15.0
    版本:git-df61bd7
    存储库:https://github.com/kubernetes/ingress-nginx
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    W0703 02:16:35.966965 7客户端_-config.go:533]未指定--kubeconfig或--master。使用包含的配置。这可能不起作用。
    i0703 02:16:35.967483 7 main.go:158]为https://10.96.0.1:443创建API客户端
    

    Dashborad图像如下:

    入口-nginx-res.yaml

    apiVersion:extensions/v1beta1
    种类:入口
    元数据:
    姓名:我的入口
    命名空间:默认
    注释:
    nginx.ingress.kubernetes.io/ssl-redirect:“假”
    规格:
    规则:
    -主持人:
    http:
    路径:
    -路径:/
    后端:
    服务名称:齿轮箱机架API网关
    服务端口:5555
    

    入口nginx ctl.yaml

    类型:服务 A版本:v1 元数据: 姓名:Ingress Nginx 规格: 类型:nodeport 选择器: 应用程序:入口nginx 端口: -名称:http 端口:80 节点报告:80 --- 种类:部署 apiVersion:扩展/v1beta1 元数据: 姓名:Ingress Nginx 规格: 副本:1 模板: 元数据: 标签: 应用程序:入口nginx 规格: 终止GracePeriod秒数:60 服务帐户:lb 容器: -图片:quay.io/kubernetes入口控制器/nginx入口控制器:0.15.0 姓名:Ingress Nginx ImagePullPolicy:始终 端口: -名称:http 集装箱港口:80 协议:TCP -名称:https 集装箱港口:443 协议:TCP 活度探针: HTTPGET公司: 路径:/healthz 端口:10254 方案:http 初始延迟条件:30 超时秒:5 EnV: -名称:pod_name 价值来源: 字段引用: 字段路径:metadata.name -名称:pod_命名空间 价值来源: 字段引用: 字段路径:metadata.namespace ARG: -/nginx入口控制器 --默认后端服务=$(pod_namespace)/nginx默认后端

    库比德山药

    apiversion:kubeadm.k8s.io/v1alpha1
    种类:主配置
    APIServerExtrargs:
    服务节点端口范围:80-32767
    网络:
    子网:192.168.0.0/16
    Kubernetesversion:1.10.3版
    特征门:
    coredns:正确
    

    ======================================

    第二版

    Ingress nginx控制器更新为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
    
    
    

    .172.50.10.10/uaa/login. 在集群中,我使用clusterip,并将入口nginx部署为入口上的nodeport。因为它是重定向/重写的,所以我通过避免省略端口将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 or 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
    

    入口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图像如下:

    enter image description here

    入口-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-ctl.yaml

    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控制器更新为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
    

    2 回复  |  直到 7 年前
        1
  •  3
  •   Vit    7 年前

    使用nodeport假定您能够访问所有的pods,因此您应该能够同时使用 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服务:。

    关于您的入口nginx频繁重启:尝试将nginx控制器升级到最新版本,并返回结果。你可以在这里找到它: https://github.com/kubernetes/ingress-nginx

    另外,请看本文中的类似问题: https://github.com/kubernetes/ingress-nginx/issues/2450

        2
  •  0
  •   user84592    7 年前

    根本原因可能是部署硬件环境。使用我的virtualbox,不会重新启动。当我使用基于OpenStack的公司虚拟机时,入口nginx控制器总是重新启动。

    推荐文章