一、ingress简介
官网参考:https://kubernetes.github.io/ingress-nginx/
Ingress是一种全局的、为了代理不同后端 Service 而设置的负载均衡服务,就是 Kubernetes 里的 Ingress 服务。
Ingress的组成:Ingress controller、Ingress。
Ingress Controller 会根据你定义的 Ingress 对象,提供对应的代理能力。业界常用的各 种反向代理项目,比如 Nginx、HAProxy、Envoy、Traefik 等,都已经为Kubernetes 专门维护了对应的 Ingress Controller。
二、ingress服务部署
参考官网:https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal
##下载节点配置文件
[root@server1 ingress]# wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/deploy.yaml
##修改配置文件的参数
///主要修改内容为:三个镜像的内容,名称需要和容器标签保持一致///
image: jettech/kube-webhook-certgen:v1.2.0
imagePullPolicy: IfNotPresent
name: patch
image: jettech/kube-webhook-certgen:v1.2.0
imagePullPolicy: IfNotPresent
name: create
- name: LD_PRELOAD
value: /usr/local/lib/libmimalloc.so
image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.33.0
imagePullPolicy: IfNotPresent
##使用文件创建相应服务
[root@server1 ingress]# kubectl create -f deploy.yaml
##查看ingress-nginx的所有信息
[root@server1 ingress]# kubectl get all -n ingress-nginx
##查看ingress-nginx在那些节点上运行
[root@server1 ingress]# kubectl get pod -n ingress-nginx -o wide
##查看服务端口
[root@server1 ingress]# kubectl get svc -n ingress-nginx
##查看服务详情信息
[root@server1 ingress]# kubectl describe svc -n ingress-nginx ingress-nginx-controller
三、基于Nginx的ingress服务部署
官方参考文件:https://kubernetes.github.io/ingress-nginx/user-guide/basic-usage/
3.1 基本服务配置
##编写yml文件
[root@server1 ingress]# vim ingress.yml
[root@server1 ingress]# cat ingress.yml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress1
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: www1.linux.org ##做相应的地址解析
http:
paths:
- path: /
backend:
serviceName: myservice
servicePort: 80
##yml文件生效
[root@server1 ingress]# kubectl apply -f ingress.yml
ingress.extensions/ingress1 created
##查看相应的服务
[root@server1 ingress]# kubectl get svc
NAME