kubernetes
  • Introduction
  • 安装
    • 组件端口
    • 二进制安装
    • Kubeadm
      • 安装单Master集群
      • 安装高可用集群(手动分发证书)
      • 安装高可用集群(自动上传证书)
      • 安装ETCD集群
      • 安装高可用集群(外部ETCD)
    • 启动参数解析
      • ETCD相关参数
  • 负载均衡
    • Service
    • Ingress
    • 安装MetalLB
    • Nginx-ingress-controller
      • 转发TCP与UDP服务
      • 启动参数
      • 自定义Nginx模板
  • 存储
    • Volume
    • PV与PVC
    • StorageClass
    • Local-PV
      • Static-Provisioner
    • 实践
      • Ceph-RBD
      • NFS
  • 有状态服务
    • Mysql实践
    • Operator
      • Etcd
      • Zookeeper
      • Mysql
  • 认证与授权
    • 认证
      • 实践
    • 授权
  • Helm
    • 安装
    • Chart
      • 依赖
    • Helm命令
    • Repository
  • 日志
  • 监控
    • Prometheus体系
      • Prometheus
        • 内置函数
        • 配置
          • 规则文件
        • PromQL
      • Exporter
        • Metrics
      • Grafana
        • 配置
      • AlertManager
        • 配置
    • 容器监控
      • Cadvisor的指标
      • k8s中部署Prom与Cadvisor
  • Istio
  • 资源预留
    • imagefs与nodefs
    • 总结
  • 集群联邦
    • 联邦DNS原理
    • 联邦DNS安装
    • 安装federation-v1
  • Other
    • ImagePullSecret
    • QOS
    • Apiserver的代理
    • 资源配额
Powered by GitBook
On this page
  • 前置条件
  • 安装
  • 创建Ingress
  • Reference

Was this helpful?

  1. 负载均衡

Nginx-ingress-controller

本教程将介绍nginx-ingress-controller:0.24.1的安装。

前置条件

  • 准备好一个kubernetes集群(本教程中kubernetes版本为1.8.6,docker版本为docker-engine-1.12.6)

安装

执行命令kubectl apply -f nginx-ingress-controller.yaml以进行安装。nginx-ingress-controller.yaml的内容如下。在DaemonSet中,--http-port、--https-port、--default-server-port与--healthz-port可以自行修改。这里我们分别设置为80、443、10254,那么要确保Pod所在的主机上这三个端口没有被占用

上面的DaemonSet中,我们设置了nodeSelector。接下来我们给某个Node打上标签,Pod就可以调度到这个Node上来了

$ kubectl label node <node> nginx-ingress-controller="0241" --overwrite

待Pod状态为Running后,访问http://<nodeIP>:10254/healthz,如果返回ok,则该Pod已正常运行。

创建Ingress

接下来,我们来创建一个Depoyment、Service与Ingress,yaml文件如下:

to be continued

Reference

  • 0.24.1版本的参考链接

注意该文档中的有些链接可能已经失效

https://github.com/kubernetes/ingress-nginx/blob/nginx-0.24.1/docs/deploy/index.md
  • 最新版本的参考链接

注意该链接的内容一直在更新,所以隔段时间看到的内容可能会不一样

https://kubernetes.github.io/ingress-nginx/deploy/`
`https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md`
  • 覆盖模板/etc/nginx/template/nginx.tmpl

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/custom-template/
  • 覆盖模板中的默认参数

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/

模板中的变量名(比如$cfg.MaxWorkerOpenFiles)与configmap中的key(比如为max_worker_open_files)的对应关系:

https://github.com/kubernetes/ingress-nginx/blob/master/internal/ingress/controller/config/config.go
Previous安装MetalLBNext转发TCP与UDP服务

Last updated 5 years ago

Was this helpful?