Kubernetes (七) service(微服务)及Ingress-nginx
? ? ? 官网地址:? ?服务(Service) | Kuberneteshttps://v1-24.docs.kubernetes.io/zh-cn/docs/concepts/services-networking/service/
一 . 网络通信原理? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
二. service作用及类型
三.? ?IPVS模式设置? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? kubelet管理容器生命周期? ? ? ? kube-proxy是管理网络流量的? ?
? ? ? ? ? 1.? ? 安装查看策略工具
? ? ? ? ? 2.?? ?修改?kube-proxy配置
? ? ? ? ? 3.? 修改配置后需要重载或重启服务,这里直接删除重建
? ? ? ? ? ? 4.? 可以用ip a 查看网络信息(会出现虚拟网卡ipvs0)
? IPVS模式下,kube-proxy会在service创建后,在宿主机上添加一个虚拟网卡并分配service IP??
? ? ? ? ? ?? 5.? ?查看策略
? ? kube-proxy通过linux的IPVS模块,以rr轮询的方式调度service中的pod? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? 6. 查看其他节点的mac地址
? 四. 修改flannel网络模式? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ??1. 改为主机网关模式并删除pod自动重建使其生效
? ? ? ? ? ?此时查看已经生效
? 五. 开始创建service(默认为ClusterIP)
? ? ? ? ? ????1.? 创建编辑文件? ? ? ? ? ?vim?clusterip.yaml
? ? ? ? ? ? ? ?2. 使其生效并查看svc
? ? ? ? ? ? ? ?3. 通过之前deployment控制器创建pod并使其生效
? ? ? ? ? ???4.? 查看service详情
? ? ? ? ? ? 5. 此时ip a查看到多了service暴露的IP
? ? ? ? ? ? ?6. 查看策略且为负载均衡
? ? ? ? ? ? ?7. 查看dns解析
??六. Headless Service服务? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ?1. 创建编辑文件? ? ? ? ? ? ? ?vim?headless.yaml
? ? ? ? ? ? ? ? 2.?headless通过svc名称访问,由集群内dns提供解析
? ?七. 开始创建service(Nodeport)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ???在每个集群节点设置了端口,只要访问给定的端口就可以访问服务? ? ? ? ? ? ? ?
? ? ? ? ???? 1.?创建编辑文件? ? ? ? ?vim?nodeport.yaml
? ? ? ? ??? ?2. 应用后查看svc? ? ?(nodeport就是在ClusterIP上绑了一个端口)?
? ? ? ? ? ? ? 3. 也可以直接修改类型? ? ? ? ???kubectl edit svc my-nginx
? ? ? ? ? ? 4.?此时用集群外访问任何一个节点都可以
? ? ? 访问集群任何一个节点端口时候,流量就到达集群,然后转发到集群内的vip
? ? ? ? ? ? 5. 指定端口方法? ? ??vim /etc/kubernetes/manifests/kube-apiserver.yaml
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? (nodeport默认端口范围:30000-32767)修改后api-server会自动重启
? ? ? ? ? ?6.? 在编辑文件添加参数后重新应用即可
八. 开始创建service(LoadBalancer)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
LoadBalancer在集群外是有负载均衡的,并不是k8s的功能,是从公有云平台分配的地址,直接访问给的地址会直接转发到节点端口nodeport上,在进入到集群内,这样一个服务就可以分配一个地址? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ?1. 创建编辑文件? ? ??vim?loadbalancer.yaml
? ? ? ? ? 2. 应用后查看处于Pending状态表示没有分配IP? (只要访问分配的IP就转发到指定端口)?
? 因为公有云要收费?metallb用来实现在私有化搭建的裸机环境中实现负载均衡器的功能,在没有云环境的情况下通过metallb将service暴露到网络环境中,供其他系统访问。
在裸金属环境中模拟云端环境,分配ip
它的作用就是通过k8s原生的方式提供LB(LoadBalancer )类型的Service支持,开箱即用。
? 官网:?MetalLB, bare metal load-balancer for Kubernetes
? ? ? ?? ?1. 修改配置文件? ? ? ? ? ??kubectl?edit?configmap?-n?kube-system?kube-proxy
? ? ? ??2.? 删除kube-proxy里边的pod自动重建
? ? ? ? 3.??下载部署文件? ? ? ?
? ?wget https://raw.githubusercontent.com/metallb/metallb/v0.13.9/config/manifests/metallb-native.yaml? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ???4. 编辑文件? 将两个镜像路径修改和仓库一致? ??新创建的目录?metallb/vim metallb-native.yaml
? ? ??? 5.??仓库创建新项目将上面所需镜像下载上传进去
? ? ? ??? ?3.??应用配置文件并查看pod就绪
? ? ? ? ???4.? 创建编辑文件? ? ? ? ? ? ??vim?config.yaml
? ? ? ?? ?5.??应用后查看分配地址成功 且集群外可以访问
九 . 开始创建service(externalname)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
再做一些应用迁移时候常用,有的应用在集群内,有的应用在集群外,一般用来迁移应用.外部资源变更的时候我们只需要更改资源设置就行,而不用变更我们的应用连接
? ? ? ? ? ? ? ?1. 创建编辑文件? ? ? ? ? ? ? ?vim?externalname.yaml
? ? ? ? ? ? ?? 2. 用命令查看解析
? ? ? ? ? ? 3. 更改对外连接资源查看
十.? Ingress-nginx? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ?(1)功能简介? ? ? ? ?
(2)下载官方地址:Installation Guide - Ingress-Nginx Controller (kubernetes.github.io)
(3)开始部署实验环境? ? ? ? ? ?
? ? ? ? ? ? ? ? ??1.?下载部署文件
? ? ? ? ? ? ?? ?2. 查看所需镜像下载并修改三处镜像为仓库路径
? ? ? ? ? ????3. 创建新的项目将镜像上传进去
? ? ? ? ? ? ? ? ?4.? 应用文件并查看pod情况
? ? ? ? ? ? ? ??5. 将my-nginx控制器loadbalancer模式改为ClusterIP
方便实验将这里修改,因为Clusterip只能在集群内访问,为了测试Ingress功能,用ingress七层方式把应用暴露出去? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ??开始Ingress控制器环节? ?
? ? ? ? ? ? ? ??1.?修改Ingress控制器的类型
? ? ? ? ? ?? ??2. 创建编辑文件并应用? ? ? ? ???vim?myapp-deploy.yaml
?? ? ? ? ??当访问不同域名的时候定义到不同的svc上? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
kind:?Ingress
metadata:
??name:?name-virtual-host-ingress
spec:
??ingressClassName:?nginx
??rules:
??-?host:?nginx.westos.org
????http:
??????paths:
??????-?pathType:?Prefix
????????path:?"/"
????????backend:
??????????service:
????????????name:?my-nginx
????????????port:
??????????????number:?80
??-?host:?myapp.westos.org
????http:
??????paths:
??????-?pathType:?Prefix
????????path:?"/"
????????backend:
??????????service:
????????????name:?my-myapp
????????????port
??????????????number:?80
? ? ? ? ? ? ? 3.??创建ingres路由规则,基于域名转发
? ? ? ? ???? 4.? Ingress规则必须和上面创建的两个svc必须处于同一个namespace
? ? ? ? ? ? ?5.? 在集群外的主机上添加解析即可访问
? 十一. Ingress TLS配置? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ???1. 生成自签名证书?2.上面生成的tls两个文件在操作系统中存放,要让集群能够识别到,create将其创建为集群的资源
? ? ? ? 3.? 编辑文件添加模块后应用文件并详情查看是否成功? ?? ??vim?ingress.yaml
? ? ? ? ? ?4. 集群外访问即可
十二. auth认证(做完加密后做认证)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ??1.? 创建auth文件
? ? ?? ????2.?create将其创建为集群的资源
? ? ? ?? ??3.编辑文件添加模块后应用文件并详情查看是否成功? ?? ??vim?ingress.yaml
? ? ? ? ???4.集群外尝试访问即可
? 十三. Rewrite重定向? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ??1. 编辑文件添加参数后应用? ? ? ?vim?ingress.yaml
? ? ? ? ? 2. 没修改前访问
? ? ? ? ? 3. 修改后访问即重定向
? ? ? ? ??
? ? ? ? ? ? ??
? ? ? ?
? ? ? ?
? ? ? ? ??
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!