Kubernetes (七) service(微服务)及Ingress-nginx

发布时间:2024年01月08日

? ? ? 官网地址:? ?服务(Service) | Kubernetesicon-default.png?t=N7T8https://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? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

Ingress | Kubernetesicon-default.png?t=N7T8https://v1-24.docs.kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/

? ? ?(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上? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

apiVersion:?networking.k8s.io/v1

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配置? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Basic Authentication - Ingress-Nginx Controller (kubernetes.github.io)icon-default.png?t=N7T8https://kubernetes.github.io/ingress-nginx/examples/auth/basic/

? ? ? ???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. 修改后访问即重定向

? ? ? ? ??

? ? ? ? ? ? ??

? ? ? ?

? ? ? ?

? ? ? ? ??

文章来源:https://blog.csdn.net/BJZX_OL/article/details/135348165
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。