[TOC]
# Ingress 资源
这个实现的是一种“HTTP负载均衡器” 其实就是一组路有规则的集合
### 创建Ingress
Ingress 资源是基于HTTP 虚拟主机或URL的转发规则
##### 示例
~~~
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations: # 用于识别ingress控制器类型,在同一集群中有多个ingress控制器时很重要
kubernetes.io/ingress.class: "nginx"
spec:
rules: #定义当前ingress资源的转发规则列表,未被匹配到的将被转发到backend后端
- host: www.ilinux.io #不支持使用IP地址,也不支持跟随端口号,此字段留空表示通配所有主机名
http:
paths:
- backend:
serviceName: myapp-svc
servicePort: 80
~~~
### 暴露单个service
~~~
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
spec:
backend:
serviceName: my-svc
servicePort: 80
~~~
### 基于URL路径的流量转发
对“www.ilinux.io/wap” 和 "www.ilinux.io/api"分别进行转发到“wap” 和 “api” 服务上
~~~
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: www.ilinux.io
http:
paths:
- path: /wap
backend:
serviceName: wap
servicePort: 80
- path: /api
backend:
serviceName: api
servicePort: 80
~~~
### 基于主机名称的虚拟主机
将“wap.ik8s.io” 和 “api.ik8s.io” 这两个主机名解析到external LB 的IP地址上去,分别转发到集群内部wap和api两个service上去
~~~
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
spec:
rules:
- host: api.ik8s.io
http:
paths:
- backend:
serviceName: api
servicePort: 80
- host: wap.ik8s.io
http:
paths:
- backend:
serviceName: wap
servicePort: 80
~~~
### 部署Ingress控制器(nginx)
创建环境
~~~
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/mandatory.yaml
`
~~~
因为部署在了裸金属服务器上,所以根据[官方文档](https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal)内容,执行以下命令
~~~
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/
~~~
- 一、K8S的安装
- 1.1 安装环境
- 1.2 问题汇总
- 1.3 事前准备
- 1.4 安装配置负载均衡
- 1.5 安装K8S软件
- 1.6 初始化kubeadm
- 1.7 添加控制节点
- 1.8 添加计算节点
- 1.9 安装故障问题处理
- 1.10 安装管理dashboard
- 1.11 编写测试Pod
- 1.12 从外部访问集群中的Pod
- 1.13 部署metrics-server指标采集
- 二、Pod管理
- 2.1 Pod 资源需求和限制
- 2.2 Init 容器
- 2.3 Pod 健康检查(探针)和重启策略
- 2.4 Pod 生命周期(钩子Hook)
- 2.5 静态Pod
- 2.6 初始化容器(init container)
- 2.7 资源限制
- 三、资源控制器
- 3.1 Deployment
- 3.2 StatefulSet
- 3.3 DaemonSet
- 3.4 Job
- 3.5 定时任务
- 3.6 准入控制器
- 3.7 自动伸缩
- 3.8 ReplicaSet
- 四、存储
- 4.1 Secret 管理敏感信息
- 4.2 ConfigMap 存储配置
- 4.3 Volume
- 4.4 PV
- 4.5 PVC
- 4.6 StorageClass
- 4.7 暴露宿主机信息给Pod
- 五、服务Service
- 5.1 Service 资源
- 5.2 服务发现
- 5.3 服务暴露
- 5.4 Ingress 资源
- 5.5 Ingress 专题
- 5.6 traefik 2.X版本使用
- 六、认证、授权、准入控制
- 6.1 服务账户
- 6.2 LimitRange资源与准入控制器
- 6.3 ResourceQuota 资源与准入控制器
- 七、Helm
- 7.1 Helm 安装
- 八、 istio
- 8.1 istio 介绍
- 8.2 iotis 安装
- 九、calico
- 9.1 两种网络模式
- 9.2 全互联模式 与 路由反射模式
- 9.3 BGP跨网段(大型网络)
- 十、Ingress
- 10.1 安装 LoadBalancer
- 10.2 部署 ingress-nginx
- 10.3 Ingress-nginx 的使用
- 10.4 开启TCP和UDP
- 使用中的问题
- CSI Node问题
