【Kubernetes】第七篇 - Service 服务介绍和使用

news2024/11/29 0:44:58

一,前言

上一篇,通过配置一个 Deployment 对象,在内部创建副本集对象,副本集帮我们创建了 3 个 pod 副本

由于 pod 存在 IP 漂移现象,pod 的创建和重启会导致 IP 变化;

本篇,介绍 Service 服务,解决 pod 的 IP 漂移问题;


二,Service 介绍

  • deployment 是无状态的
  • deployment 并不会对 pod 进行网络通信和分发
  • Pod 的 IP 在运行时还会经常进行漂移且不固定
  • 想访问服务需要使用 Service 组织统一的 Pod 访问入口
  • 可以定义Service 来进行统一组织 Pod 服务访问
  • 负责自动调度和组织deployment中 Pod 的服务访问,由于自动映射 Pod 的IP,同时也解决了 Pod 的IP漂移问题


三,Pod 的 ip 漂移问题

上图有 3 个 node 节点,访问节点 3000 端口,请求会统一转发到 service,由 service 负载均衡分发到 pod 节点;

在每个 node 节点上监听一个端口(如 3000),客户端(即浏览器)访问每个节点的 3000 端口都会访问到 Service 服务(Service 有固定 IP 和端口号),通过 Service 转发给 pod

Service 负责调度和组织 deployment 中 Pod 完成服务访问,Service 会自动映射 Pod 的 IP(即 Service知道每个 pod 对应的真实 ip ),这样就解决了 Pod 的 IP 漂移问题(pod 的 ip 可能会发生变化,但有固定 IP 和端口的 Service 服务可以找到 pod)


四,创建 Service 配置文件

NodePort 将会在所有节点上开放一个特定端口,任何发送到该端口的流量都将被转发到对应的服务上;

字段说明
protocol通信类型(TCP/UDP)
targetPort原本 Pod 开放的端口
portKubernetes 容器之间互相访问的端口
typeNodePort,Service 的一种访问方式

创建 Service 配置文件:user-service-v1.yaml

[root@k8s-master ~]# ls
deployment  init-kubeadm.conf  kube-flannel.yml  mysql.yaml
[root@k8s-master ~]# cd deployment/
[root@k8s-master deployment]# ls
deployment-user-v1.yaml
[root@k8s-master deployment]# vi user-service-v1.yaml

配置信息:

apiVersion: v1
kind: Service       #类型
metadata:
  name: service-user-v1
spec:
  selector:
    app: user-v1   
  ports:
  - protocol: TCP   #协议
    port: 80        #nginx端口
    targetPort: 80
  type: NodePort    #节点端口号,不指定随机

五,启动 Service

// 根据配置文件启动 Service
[root@k8s-master deployment]# kubectl apply -f user-service-v1.yaml
service/service-user-v1 created

六,查看当前的服务

// 查看当前服务
[root@k8s-master deployment]# kubectl get svc
NAME              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes        ClusterIP   10.96.0.1       <none>        443/TCP        35h
nginx             NodePort    10.107.223.32   <none>        80:32117/TCP   21h
service-user-v1   NodePort    10.104.13.40    <none>        80:31071/TCP   55s

七,访问 Service

1,可以在任何节点上访问

// master 访问
[root@k8s-master ~]# curl http://172.17.178.105:31071
user-v1
[root@k8s-master ~]# curl http://172.17.178.106:31071
user-v1

// node 访问
[root@k8s-node ~]# curl http://172.17.178.105:31071
user-v1
[root@k8s-node ~]# curl http://172.17.178.106:31071
user-v1

2,通过浏览器访问公网地址

http://47.93.9.45:31071/

问题:浏览器会转框卡住
原因:由于防火墙导致

两种解决方法:

1,到阿里云安全规则配置开放端口
2,换成一个已经开放的端口,比如:8080

开放端口号:31071

重新访问,成功:


结尾

本篇,主要介绍了 Service 相关内容,包含创建、启动、访问、以及 pod 的 id 漂移;

下一篇,继续介绍 Ingress;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/364036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《计算机网络:自顶向下方法》实验5:NAT协议分析 Wireshark实验

实验12:NAT协议分析 1 What is the IP address of the client? 客户端的 IP 地址是192.168.1.100 2 The client actually communicates with several different Google servers in order to implement “safe browsing.” (See extra credit section at the end of this la…

Safety-Gym环境配置与安

官网&#xff1a; https://github.com/openai/safety-gym https://github.com/openai/safety-starter-agents 一、安装依赖环境配置 建议使用python 3.7及以下环境&#xff0c;因为官方的safety-rl是基于tensorflow1.13.1实现&#xff0c;而tensorflow1.13.1只能支持python…

leaflet 自定义添加地图网格线(087)

第087个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中自定义添加地图网格线。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共76行)安装插件相关API参考:专栏目标示例效果 配置方式 1)查看基…

前端学习第九站——Vue3基础篇

目录 一、环境搭建 创建项目 编码 IDE 修改端口 配置代理 项目架构 二、Vue组件 main.ts 属性绑定 事件绑定 表单绑定 计算属性 xhr axios 环境变量 baseURL 拦截器 条件和列表 监听器 vueuse useRequest usePagination&#xff08;分页&#xff09; 子组…

你什么档次?敢和我用一样的即时通讯平台WorkPlus?

现今&#xff0c;很多企业越来越青睐私有化部署&#xff0c;尤其是在选择组织内部即时通讯平台的时候&#xff0c;更是会提出私有化部署的需求。究其原因&#xff0c;企业选择私有化部署即时通讯软件完全是出于安全方面考虑。因此&#xff0c;越来越多的企业将眼光望向了本地化…

深入讲解CFS组调度!(上)

注&#xff1a;本文缩写说明 一、CFS组调度简介 1.1. 存在的原因 总结来说是希望不同分组的任务在高负载下能分配可控比例的CPU资源。为什么会有这个需求呢&#xff0c;比如多用户计算机系统每个用户的所有任务划分到一个分组中&#xff0c;A用户90个相同任务&#xff0c;而B…

NIO蔚来 面试——IP地址你了解多少?

目录 前言 1、IP地址 1.1、什么是IP地址 1.2、IP地址的格式 1.2.1、32位二进制数表示IP地址&#xff0c;够用吗&#xff1f; 1.3、IP地址的组成 1.4、为什么会出现IPv6 1.4.1、为什么IPv6还没有大量普及呢&#xff1f; 1.5、子网掩码 1.6、特殊的IP地址 2、路由选择 …

微信小程序 之 云开发

一、概念1. 传统开发模式2. 新开发模式 ( 云开发模式 )3. 传统、云开发的模式对比4. 传统、云开发的项目流程对比5. 云开发的定位1. 个人的项目或者想法&#xff0c;不想开发服务器&#xff0c;直接使用云开发2. 某些公司的小程序项目是使用云开发的&#xff0c;但是不多&#…

Python自动化测试之登录脚本

登录脚本环境准备1、安装selenium模块2、安装浏览器驱动器代码1、登录代码2、xpath定位元素标签环境准备 前提已经安装好python、pycharm&#xff0c;配置了对应的环境变量。 1、安装selenium模块 文件–>设置—>项目&#xff1a;script---->python解释器---->s…

Spring自动装配的底层逻辑

Spring是如何自动装配Bean的&#xff1f;看源码一些自己的理解&#xff0c;如有错漏&#xff0c;请指正 使用Spring之前我们要先去web.xml中设置一下Spring的配置文件&#xff0c;在Spring的配置文件中&#xff0c;是通过component-scan扫描器去扫描base-package底下所有的类装…

【基础算法】哈希表(拉链法)

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:云小逸的主页 &#x1f4dd;Github:云小逸的Github &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前…

【C++的OpenCV】第四课-OpenCV图像常用操作(一):Mat对象深化学习、灰度、ROI

我们开始图像处理的基本操作的了解一、图像对象本身的加深学习1.1 Mat对象和ROI1.1.1 创建一个明确的Mat对象1.1.2 感兴趣的区域ROI二、图像的灰度处理2.1 概念2.2 cvtColor()函数2.3 示例一、图像对象本身的加深学习 1.1 Mat对象和ROI 这是一个技术经验的浅尝&#xff0c;所以…

什么是 CSAT?这份客户满意度流程指南请查收

什么是 CSAT&#xff1f;如何计算我的客户满意度分数&#xff1f;大中型公司应该熟悉这些术语。以下文章旨在教您有关客户满意度流程的所有内容 - 基本的CSAT概念、创建CSAT调查的好处、如何创建CSAT调查。配图来源&#xff1a; SaleSmartly(ss客服) 一、什么是 CSAT&#xff1…

算法笔记(十二)—— Manacher算法(回文子串)

计算字符串内的最大回文子串&#xff0c;常用的暴力扩散在应对长度为偶数的回文时会遇到一些问题。 Manacher基础&#xff1a;对字符串进行填充&#xff0c;在字符串开头结尾以及字符间填充‘#’&#xff0c;以来应对偶数回文时的问题。&#xff08;这是采用暴力扩再除2&#x…

[黑马程序员SSM框架教程]03 spring核心概念

IOC/DI 书写现状&#xff1a;耦合度偏高 如图&#xff1a;传统书写代码左边业务层需要new一个对象进行业务实现。当数据层优化代码BookDaoImpl2就需要动业务层代码重新修改new的对象。导致代码耦合度偏高。 解决办法&#xff1a;使用对象&#xff0c;不要主动new对象&#xff…

kubernetes traefik ingress 安装部署以及使用和注意点

1、简介 Traefik 是一款 open-source 边缘路由器&#xff0c;可让您轻松地发布服务. 它接收来自您的系统请求&#xff0c;并找出负责处理它们的后端服务组件。 traefik 与众不同在于它能够自动发现适合您服务的配置。 当 Traefik 检查您的基础设施时&#xff0c;它会发现相关信…

Redisson实现分布式锁

目录Redisson简介Redisson实现分布式锁步骤引入依赖application.ymlRedisson 配置类Redisson分布式锁实现Redisson简介 Redis 是最流行的 NoSQL 数据库解决方案之一&#xff0c;而 Java 是世界上最流行&#xff08;注意&#xff0c;没有说“最好”&#xff09;的编程语言之一。…

Matthew Ball:十多年后AR/VR为何依然发展缓慢?

2010年&#xff0c;Magic Leap和微软就开始研发AR技术&#xff0c;直到2012年Oculus才成立&#xff0c;AR/VR经过了13年左右的时间&#xff0c;虽然受到越来越多人关注&#xff0c;但发展依然缓慢。VR的主要应用场景还是游戏&#xff0c;但VR游戏只是游戏市场的一个分支&#x…

第七章.深度学习

第七章.深度学习 7.1 深度学习 深度学习是加深了层的深度神经网络。 1.加深层的好处 1).可以减少网络的参数数量 5*5的卷积运算示例&#xff1a; 重复两次3*3的卷积层示例&#xff1a; 图像说明&#xff1a; ①.一次5 * 5的卷积运算的区域可以由两次3 * 3的卷积运算抵消&a…

服务端开发Java之备战秋招面试篇1

在这个面试造火箭工作拧螺丝的时代背景下&#xff0c;感觉不是很好&#xff0c;不过还好也是拿到了还行的offer&#xff0c;准备去实习了&#xff0c;接下来就是边实习边准备秋招了&#xff0c;这半年把&#xff08;技术栈八股文面经算法题项目&#xff09;吃透&#xff0c;希望…