kubernetes以及运维开发系列KubernetesDocker与Kubernetes

ingress-nginx部署

2020-03-18  本文已影响0人  肖金光xjg

ingress介绍

在kubernetes中,POD,SVC的IP地址只能集群内部使用,集群外部是无法访问的。
为了能让外部的应用访问进来,kubernetes提供了如下几种方案:

ingress工作原理

ingress解决那些问题?

ingress当前的实现方式

官网文档:https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/

图片.png

本次使用基于nginx的ingress
github地址:https://github.com/kubernetes/ingress-nginx/tree/nginx-0.30.0

部署Ingress-nginx

部署文件介绍,准备

deploy的yaml

项目官网deploy方式部署的yaml配置地址:https://github.com/kubernetes/ingress-nginx/tree/nginx-0.30.0/deploy/static

图片.png

configmap.yaml 存储配置信息,key/value值
namespace.yaml 建命名空间
mandatory.yaml 包含部署deploy相关所有资源(configmap.yaml,namespace.yaml,rbac.yaml,with-rbac.yaml)
rbac.yaml rbac授权配置,创建Ingress需要使用的ServiceAccount,ClusterRole,Role,RoleBinding,ClusterRoleBinding
with-rbac.yaml 能使用rbac授权的deploy配置,用于构建ingress-controller

service的yaml

自建集群用:


图片.png

https://github.com/kubernetes/ingress-nginx/blob/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml

公有云上用:


图片.png

亚马孙云上用:


图片.png

国外源改为国内源

修改mandatory.yaml或者with-rbac.yaml里面的image地址,避免原地址镜像拉取超时

镜像国外源地址 版本号 镜像国内源地址
quay.io/kubernetes-ingress-controller/nginx-ingress-controller 0.30.0 quay.azk8s.cn/kubernetes-ingress-controller/nginx-ingress-controller

部署

自建集群部署

wget https://github.com/kubernetes/ingress-nginx/blob/nginx-0.30.0/deploy/static/mandatory.yaml
sed -i 's/quay.io/quay.azk8s.cn/' mandatory.yaml
kubectl apply -f mandatory.yaml
kubectl apply -f https://github.com/kubernetes/ingress-nginx/blob/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml

验证

查看deploy

[root@nw61 nginx-ingress]# kubectl -n ingress-nginx get pods
NAME                                        READY   STATUS    RESTARTS   AGE
nginx-ingress-controller-55c9df84c6-8x4kk   1/1     Running   0          18h

查看pod详情
kubectl -n ingress-nginx describe pod nginx-ingress-controller-55c9df84c6-8x4kk
查看svc

[root@nw61 nginx-ingress]# kubectl -n ingress-nginx get svc
NAME            TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx   NodePort   10.107.133.174   <none>        80:30708/TCP,443:31055/TCP   18h

访问测试

[root@nw61 nginx-ingress]# curl http://10.107.133.174/
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.17.8</center>
</body>
</html>
[root@nw61 nginx-ingress]# ping 10.107.133.174
PING 10.107.133.174 (10.107.133.174) 56(84) bytes of data.
64 bytes from 10.107.133.174: icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from 10.107.133.174: icmp_seq=2 ttl=64 time=0.044 ms
上一篇下一篇

猜你喜欢

热点阅读