kubernetes - Nginx入口无法服务

标签 kubernetes kubectl kubernetes-ingress kubeadm nginx-ingress

我是k8s的新手
我有一个下面的部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      component: web
  template:
    metadata:
      labels:
        component: web
    spec:
      containers:
        - name: jenkins
          image: jenkins
          ports:
            - containerPort: 8080
            - containerPort: 50000


我的服务文件如下:
apiVersion: v1
kind: Service
metadata:
   name: jenkins-svc
spec:
   type: ClusterIP
   ports:
   - port: 80
     targetPort: 8080
     name: http
   selector:
      component: web


我的入口文件是
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: jenkins-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: jenkins.xyz.com
    http:
      paths:
      - path: /
        backend:
          serviceName: jenkins-svc
          servicePort: 80



我正在使用nginx入口项目,并且我的集群是使用具有3个节点的kubeadm创建的
nginx ingress

我首先运行了强制性命令
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

当我尝试打jenkins.xyz.com时,它不起作用
当我尝试命令
  kubectl get ing

ing资源没有获得分配给它的IP地址

最佳答案

入口资源只不过是反向代理的配置(Ingress controller)。

没有为Ingress分配IP地址是正常的。

您需要做的是连接到入口 Controller 实例。

为此,您需要了解它们如何在群集中公开。

考虑到您声称用于运行入口 Controller 的YAML,因此没有暴露于外部网络的迹象。

您至少需要定义一个Service来公开您的 Controller (如果放置群集的提供程序支持它,则可以成为负载平衡器),可以使用HostNetwork: trueNodePort

要使用最新选项(NodePort),可以应用以下YAML:

https://github.com/kubernetes/ingress-nginx/blob/master/deploy/static/provider/baremetal/service-nodeport.yaml

建议您阅读Ingress文档页面,以更清楚地了解所有这些工作原理。

https://kubernetes.io/docs/concepts/services-networking/ingress/

关于kubernetes - Nginx入口无法服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56815727/

相关文章:

nginx入口子路径重定向

ssl - 如何配置 Kubernetes Ingress Nginx 白名单只适用于 http

amazon-web-services - 如何将 s3 存储桶文件复制到 Kubernetes 运行的 Pod 中?

kubernetes - kubectl 命令在空闲几分钟后断开连接

docker - 如何删除所有这些 kubernetes k8s_* 容器

kubernetes - 如何通过 ssh 隧道使用 kubectl 通过我的 kubernetes API 访问我的内部 ELB?

kubernetes - NGINX Ingress 上的全局静态 IP 名称

kubernetes - Ingress-nginx-套接字挂断,connResetException?

python - Kubernetes:如何使用 python 获取容器的状态和重新启动?

mysql - 通过集群重启使用持久卷为MySQL pod持久化数据