zoukankan      html  css  js  c++  java
  • Kubernetes – Ingress

    用户在 Kubernetes 上部署的服务一般运行于私有网络,Pod和Service 提供了 hostPort,NodePort等参数用于暴露这些服务端口到K8S节点上,供使用者访问。这样的方法有明显缺点:

    1)容易占用过多的主机端口;

    2)服务端口暴露到多台主机会增加防火墙和安全配置的难度

    3)默认的hostPort,NodePort方式没有负载均衡的作用

    K8S的 Ingress 资源提供了另一种服务暴露的方法,它可以获取各个服务的状态,传递给nginx等工具进行配置修改、重新加载等工作,实现负载均衡、虚拟主机、SSL等功能。并且它只需要占用一台主机的80、443、8080三个端口就可以为所有HTTP服务实现上述功能。

    关于nginx ingress的安装,K8S有相关说明,网上也有很多文档可参考:

    https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx

    apiVersion: v1
    kind: Service
    metadata:
    name: gitlab-svc
    namespace: gitlab5
    spec:
    ports:
    - port: 80
    name: web
    selector:
    name: gitlab
    ---
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
    name: git.mydomain.com
    namespace: gitlab5
    spec:
    rules:
    - host: git.mydomain.com
    http:
    paths:
    - path: /
    backend:
    serviceName: gitlab-svc
    servicePort: 80
  • 相关阅读:
    修改MySQL数据文件的位置
    服务名无效。请键入 NET HELPMSG 2185 以获得更多的帮助。
    索引的讲解
    运行php程序时,浏览器跳出打开和保存提示框
    ora-4031错误
    MySQL_Oracle_事物的隔离级别
    GNU与Linux
    计算机网络_第一章
    Linux网卡高级命令
    Linux RAID简介
  • 原文地址:https://www.cnblogs.com/liubin0509/p/7550374.html
Copyright © 2011-2022 走看看