k8s集群-7 service

news/2024/11/29 1:43:22/

工作负载的应用是如何暴露出去的 解决访问问题

Service可以看作是一组提供相同服务的Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。
service默认只支持4层负载均衡能力,没有7层功能。(可以通过Ingress实现)
service的类型:
ClusterlP:默认值,k8s系统给service自动分配的虚拟IP,只能在集群内部访问。NodePort: 将Service通过指定的Node上的端口暴露给外部,访问任意一个NodelP:nodePort都将路由到ClusterIP.LoadBalancer:在 NodePort 的基础上,借助 cloud provider 创建一个外部的负载均衡器,并将请求转发到 <NodelP>:NodePort,此模式只能在云服务器上使用。ExternalName:将服务通过DNS CNAME记录方式转发到指定的域名(通过spec.externIName 设定)。

作用就是 不管在集群内还是集群外  都可以访问pod 上面的应用

并且对集群内的应用pod 自动发现和负载均衡

service默认支持四层负载均衡 七层需要 inggress 来支持

Service 是由 kube-proxy 组件,加上iptables 来共同实现的
kube-proxy 通过 iptables 处理 Service 的过程,需要在宿主机上设置相当多的iptables 规则,如果宿主机有大量的Pod,不断刷新iptables规则,会消耗大量的CPU资源。
IPVS模式的service,可以使K8s集群支持更多量级的Pod.

必须要有proxy 如果跨主机网络通信 还需要flannel 节点 然后在结合每个节点上的 iptables 从而再实现负载均衡

默认类型是ClusterIP  不指定就是 CLusterIP

默认使用iptables 调度 iptables 算法是随机的    推荐使用 lvs 

ipvs 模式   LVS内核调度 算法更强大 性能更好

减少在刷 iptables 所带来的消耗

修改proxy配置

重启pod

切换ipvs模式后,kube-proxy会在宿主机上添加一个虚拟网卡:kube-ipvs0,并分配service IP

==============================

Nodeport


nodeport在集群节点上绑定端口,一个端口对应一个服务

=============================

headless

headless模式不分配vip

这种类型也是 一种特殊的clusterIP 类型  cluserIp 仅限于集群内访问

headless通过svc名称访问,由集群内dns提供解析

集群内直接使用service名称访问

仅限于集群内

============================

从外部访问的第二种方式 适用于 k8S 服务

默认无法分配外部访问IP

LoadBalancer模式适用云平台,裸金属环境需要安装metallb提供支持

loadBlabcer -> nodeport -> clusterip -> pod

官网:https://metallb.universe.tf/installation/

metallb

下载部署文件

修改文件中镜像地址,与harbor仓库路径保持一致

拉取镜像

打标签

上传镜像

部署服务

配置分配地址段


http://www.ppmy.cn/news/1141057.html

相关文章

数据科学家的编程语言

数据科学家的编程语言 在今天有256种编程语言可供选择&#xff0c;选择要学习的语言可能会令人不知所措和困难。有些语言更适用于构建游戏&#xff0c;而有些更适用于软件工程&#xff0c;还有一些更适用于数据科学。 编程语言的类型 低级编程语言是计算机用来执行操作的最容…

数据结构学习:数据结构概念了解

数据结构课程的起源 1968年高德纳教授开创了数据结构这门学科&#xff0c;同年&#xff0c;数据结构作为计算机科学的学位课程。 数据结构研究什么 研究非数值计算类型的程序问题&#xff1b; 研究数据之间的组织和操作方式&#xff1b; 研究数据的逻辑结构和存储结构&#xf…

kafka、rabbitmq 、rocketmq的区别

一、语言不同 RabbitMQ是由内在高并发的erlanng语言开发&#xff0c;用在实时的对可靠性要求比较高的消息传递上。 kafka是采用Scala语言开发&#xff0c;它主要用于处理活跃的流式数据,大数据量的数据处理上 二、结构不同 RabbitMQ采用AMQP&#xff08;Advanced Message Q…

Jenkins配置钉钉通知

Jenkins 作为最流行的开源持续集成平台&#xff0c;其强大的拓展功能一直备受测试人员及开发人员的青睐。大家都知道我们可以在 Jenkins 中安装 Email 插件支持构建之后通过邮件将结果及时通知到相关人员。 但其实 Jenkins 还可以支持钉钉消息通知&#xff0c;其主要通过 Ding…

runlike和whaler工具

简介 runlike工具可以输出容器的启动命令 whaler工具可以输出容器的Dockerfile runlike安装及使用 方式一&#xff1a;通过pip命令安装 # pip 是一款Python管理包的工具 pip install runlike# 使用方法 # runlike -p <容器id|容器名称>#举例 runlike -p postgres #输…

ROS+PX4+mavros+qgc环境搭建笔记

环境搭建&#xff1a; Ubuntu20.04中 jmavsim开启失败问题解决方案 b站hg教程&#xff1a; b站px4环境安装教程文档 bilibili 资料链接&#xff1a;https://pan.baidu.com/s/1P2gqfdofudzguFvBiM55QA?pwdllye 提取码&#xff1a;llye

【洛谷】P1114 “非常男女”计划

思路&#xff1a;思路和上一篇一模一样哒~&#xff08;这里就不多解释啦&#xff09; ACcode: #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N 2e510; int n,a[N],f[N]; int main() { ios::sync_with_st…

【Freeradius】使用Freeradius、LDAP和Google Authenticator实现双因素身份验证

随着网络安全威胁的增加&#xff0c;传统的用户名和密码已经变得不再安全。为了加强网络访问的安全性&#xff0c;双因素身份验证成为了一种流行且有效的解决方案。在本文中&#xff0c;我们将介绍如何在已有的Windows AD环境下&#xff0c;在Ubuntu 22.04上安装和配置Freeradi…