部署kubernetes的ingress-nginx使用(含实际操作以及所有yaml文件)

一、Ingress简介Ingress是对外服务到集群内的Service之间规则的集合:允许进入集群的请求被转发至集群内的Service。Ingress能把Service配置成外网能够访问的url,流量负载均衡,终止ssl,提供基于域名访问的虚拟主机等,用户通过访问url访问Service。Ingress-controller负责处理所有Ingress的请求流量,它通常是一个负载均衡器。在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可.
摘要由CSDN通过智能技术生成

一、Ingress简介

Ingress是对外服务到集群内的Service之间规则的集合:允许进入集群的请求被转发至集群内的Service。
Ingress能把Service配置成外网能够访问的url,流量负载均衡,终止ssl,提供基于域名访问的虚拟主机等,用户通过访问url访问Service。
Ingress-controller负责处理所有Ingress的请求流量,它通常是一个负载均衡器。
 
在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,在Kubernetes 目前 提供了以下几种方案:
NodePort
LoadBalancer
Ingress

Ingress组成

ingress controller
  将新加入的Ingress转化成Nginx的配置文件并使之生效
ingress服务
  将Nginx的配置抽象成一个Ingress对象,每添加一个新的服务只需写一个新的Ingress的yaml文件即可

Ingress工作原理

1.ingress controller通过和kubernetes api交互,动态的去感知集群中ingress规则变化,
2.然后读取它,按照自定义的规则,规则就是写明了哪个域名对应哪个service,生成一段nginx配置,
3.再写到nginx-ingress-control的pod里,这个Ingress controller的pod里运行着一个Nginx服务,控制器会把生成的nginx配置写入/etc/nginx.conf文件中,
4.然后reload一下使配置生效。以此达到域名分配置和动态更新的问题。
 
Ⅰ、ingress策略本质是转发的规则;
Ⅱ、ingress-controller基于ingress策略将客户端的请求转发到service对应的后端endpoint,即Pod上;实现了为所有后端service提供统一入口,基于不同的http url向后转发负载分发规则,并可以灵活设置7层的负载分发策略的功能;一般由nginx实现。

Ingress可以解决什么问题

1.动态配置服务
  如果按照传统方式, 当新增加一个服务时, 我们可能需要在流量入口加一个反向代理指向我们新的k8s服务. 而如果用了Ingress, 只需要配置好这个服务, 当服务启动时, 会自动注册到Ingress的中, 不需要而外的操作.
2.减少不必要的端口暴露
  配置过k8s的都清楚, 第一步是要关闭防火墙的, 主要原因是k8s的很多服务会以NodePort方式映射出去, 这样就相当于给宿主机打了很多孔, 既不安全也不优雅. 而Ingress可以避免这个问题, 除了Ingress自身服务可能需要映射出去, 其他服务都不要用NodePort方式

 

二、部署配置Ingress controller

1、准备docker images

由于下载的yaml文件中需要用到的两个镜像 ingress-nginx和defaultbackend,但是国内是无法直接下载,因此需要提前准备好,方式和部署kubernetes集群的docker镜像是一样的,以下是操作方式以及实际操作流程
# 【如果镜像pull之后,不想改tag,则在对应的yaml文件中进行调整】
# 由于下载的yaml部署文件中,使用的镜像版本是0.30.0,因此找这个版本的
docker pull suisrc/ingress-nginx:0.30.0
docker tag suisrc/ingress-nginx:0.30.0 quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
docker rmi suisrc/ingress-nginx:0.30.0
 
# 由于在部署的时候,如果删除了阿里云的那个镜像,部署会出现无法拉取镜像出现,因此这里就不删除
docker pull registry.cn-qingdao.aliyuncs.com/kubernetes_xingej/defaultbackend-amd64:1.5
docker tag registry.cn-qingdao.aliyuncs.com/kubernetes_xingej/defaultbackend-amd64:1.5 k8s.gcr.io/defaultbackend:1.5
# 实际操作如下
root@k8s-master:~/k8s/ingress# docker pull suisrc/ingress-nginx:0.30.0
0.30.0: Pulling from suisrc/ingress-nginx
c9b1b535fdd9: Pull complete
45ba4c948320: Pull complete
70c24c20a569: Pull complete
58acda238271: Pull complete
7873cb07ba91: Pull complete
3572b831a7ad: Pull complete
2e4b94d88c7a: Pull complete
73d054fe6162: Pull complete
72107c0475b3: Pull complete
0920fa00bdaf: Pull complete
bbc4231b0eed: Pull complete
1a0d8e7b84e8: Pull complete
b2947a77ebb4: Pull complete
Digest: sha256:d22b600d98649dd06a128fbf0c8bf8d1aaf25512f0d57770079b7211e1d4e64a
Status: Downloaded newer image for suisrc/ingress-nginx:0.30.0
docker.io/suisrc/ingress-nginx:0.30.0
root@k8s-master:~/k8s/ingress# docker images
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
nginx                                latest              ed21b7a8aee9        9 days ago          127MB
k8s.gcr.io/kube-proxy                v1.18.0             43940c34f24f        2 weeks ago         117MB
k8s.gcr.io/kube-controller-manager   v1.18.0             d3e55153f52f        2 weeks ago         162MB
k8s.gcr.io/kube-scheduler            v1.18.0             a31f78c7c8ce        2 weeks ago         95.3MB
k8s.gcr.io/kube-apiserver            v1.18.0             74060cea7f70        2 weeks ago         173MB
suisrc/ingress-nginx                 0.30.0              0118b9637e9b        2 weeks ago         393MB
quay.io/coreos/flannel               v0.12.0-amd64       4e9f801d2217        3 weeks ago         52.8MB
quay.io/coreos/flannel               v0.12.0-arm64       4e9f801d2217        3 weeks ago         52.8MB
k8s.gcr.io/pause                     3.2                 80d28bedfe5d        7 weeks ago         683kB
k8s.gcr.io/coredns                   1.6.7               67da37a9a360        2 months ago        43.8MB
k8s.gcr.io/etcd                      3.4.3-0             303ce5db0e90        5 months ago        288MB
root@k8s-master:~/k8s/ingress# docker tag suisrc/ingress-nginx:0.30.0 quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
root@k8s-master:~/k8s/ingress# docker images
REPOSITORY                                                                TAG                 IMAGE ID            CREATED             SIZE
nginx                                                                     latest              ed21b7a8aee9        9 days ago          127MB
k8s.gcr.io/kube-proxy                                                     v1.18.0             43940c34f24f        2 weeks ago         117MB
k8s.gcr.io/kube-scheduler                                                 v1.18.0             a31f78c7c8ce        2 weeks ago         95.3MB
k8s.gcr.io/kube-controller-manager                                        v1.18.0             d3e55153f52f        2 weeks ago         162MB
k8s.gcr.io/kube-apiserver                                                 v1.18.0             74060cea7f70        2 weeks ago         173MB
suisrc/ingress-nginx                                                      0.30.0              0118b9637e9b        2 weeks ago         393MB
quay.io/kubernetes-ingress-controller/nginx-ingress-controller            0.30.0              0118b9637e9b        2 weeks ago         393MB
quay.io/coreos/flannel                                                    v0.12.0-amd64       4e9f801d2217        4 weeks ago         52.8MB
quay.io/coreos/flannel                                                    v0.12.0-arm64       4e9f801d2217        4 weeks ago         52.8MB
k8s.gcr.io/pause                                                          3.2                 80d28bedfe5d        7 weeks ago         683kB
k8s.gcr.io/coredns                                                        1.6.7               67da37a9a360        2 months ago        43.8MB
k8s.gcr.io/etcd                                                           3.4.3-0             303ce5db0e90        5 months ago        288MB
root@k8s-master:~/k8s/ingress# docker rmi suisrc/ingress-nginx:0.30.0
root@k8s-master:~/k8s/ingress# docker images
REPOSITORY                                                                TAG                 IMAGE ID            CREATED             SIZE
nginx                                                                     latest              ed21b7a8aee9        9 days ago          127MB
k8s.gcr.io/kube-proxy                                                     v1.18.0             43940c34f24f        2 weeks ago         117MB
k8s.gcr.io/kube-scheduler                                                 v1.18.0             a31f78c7c8ce        2 weeks ago         95.3MB
k8s.gcr.io/kube-controller-manager                                        v1.18.0             d3e55153f52f        2 weeks ago         162MB
k8s.gcr.io/kube-apiserver                                                 v1.18.0             74060cea7f70        2 weeks ago         173MB
quay.io/kubernetes-ingress-controller/nginx-ingress-controller            0.30.0              0118b9637e9b        2 weeks ago         393MB
quay.io/coreos/flannel                                                    v0.12.0-amd64       4e9f801d2217        4 weeks ago         52.8MB
quay.io/coreos/flannel                                                    v0.12.0-arm64       4e9f801d2217        4 weeks ago         52.8MB
k8s.gcr.io/pause                                                          3.2                 80d28bedfe5d        7 weeks ago         683kB
k8s.gcr.io/coredns                                                        1.6.7               67da37a9a360        2 months ago        43.8MB
k8s.gcr.io/etcd                                                           3.4.3-0             303ce5db0e90        5 months ago        288MB
 
 
root@k8s-master:~/k8s/ingress# docker pull registry.cn-qingdao.aliyuncs.com/kubernetes_xingej/defaultbackend-amd64:1.5
1.5: Pulling from kubernetes_xingej/defaultbackend-amd64
Digest: sha256:2cdff48ab9b20ca5f9b0ee48bf3c139c51d6fb1a15245966583bc371c121c238
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值