当前位置: 首页 > news >正文

k8s-基础知识(Service,NodePort,CusterIP,NameSpace,资源限制)

Service

它提供了服务程序和外部的各种组件通信的能力:
1 Service 有固定的IP和端口
2 Service 背后是pod在工作
Kubernetes 会给Service分配一个静态 IP 地址,Service自动管理、维护后面动态变化的 Pod 集合,当客户端访问 Service,它就根据某种策略,把流量转发给后面的某个 Pod。

在这里插入图片描述
Service使用了iptables技术,每个节点上的kube-proxy组件自动维护iptables规则。
客户端不需要关心Pod的具体地址,只要访问Service的固定IP地址。
Service会根据iptables规则转发请求给后端的Pod。
支持多种services:

  • NodePort: NodePort服务监听节点上的一个端口并将请求转发给Pod。把Service通过端口号暴露到集群中的节点主机。
  • ClusterIP:CusterIP是默认的Service的IP地址,是一个虚拟IP地址(类似Swarm,分配了VIP)。只能kubernetes集群内部访问使用,外部网络无法ping通。服务在cluster内部创建一个虚拟IP,以实现不同服务之间的通信,比如一组前端服务器到一组后端服务器。
  • LoadBalancer:LoadBalancer需要搭配云厂商(第三方)的负载均衡器来使用。它在支持的云供应商中为我们的应用程序提供一个负载平衡器。
  • ExternalName:ExternalName的服务将service映射到 DNS CNAME(不常用)。

NodePort

NodePort 服务可以将节点上的端口映射到pod上。
这里理清三个端口:
1 pod会有一个端口 这个pod服务的端口
2 Service会有一个端口,Service的端口,背后可能有多个pod,相当于是一个统一入口。
3 这个节点上提供外部访问有一个端口,节点端口只能在一个有效的范围内,默认情况下是30,000到32,767
在这里插入图片描述

#监控节点的变化
kubectl get pods -w
apiVersion: v1
kind: Service
metadata: name: myapp-service
spec:type: NodePortports:- port: 80 #这个端口必须要有targetPort: 80 #默认和port一致nodePort: 30008 #默认随机一个端口selector:app: myapp #这个选择器会取选对应的pod作为这个Service的pod

CusterIP

web应用程序一般有不同种类的部分,所有单元都分配了一个IP地址。但是这些IP不是静态的。这些组件随时可能出现故障,并且创建新的pod。因此,不能依赖这些IP地址进行应用程序之间的内部通信。
每个service都在集群内获得一个IP和分配给它的名称,这是其他路径访问该service时应使用的名称。这种类型的service称为ClusterIP。

apiVersion: v1
kind: Service
metadata: name: backend
spec:type: ClusterIP #默认就是ClusterIPports:- port: 80targetPort: 80selector:app: myapptype: backend

Namespace

Kubernetes在集群首次启动时,自动创建默认名称空间default namespace。Namespace 主要起到限制起到隔离资源的作用。

Kubernetes在内部创建了一组pod和service,如网络方案、DNS服务等。为了将这些与用户隔离开来,防止意外删除或修改这些服务,Kubernetes在集群启动时创建的另一个名为kube-system的名称空间下创建了这些服务。

Kubernetes自动创建的第三个名称空间被称为kube-public,创建应向所有用户开放的资源的地方。

将Kubernetes集群用于企业或生产目的时,可能要考虑使用名称空间。例如,在开发和生产环境中使用同一个集群,但同时在它们之间隔离资源,可以为它们各自创建一个不同的名称空间。在开发环境中工作时,就不会意外地修改生产环境中的资源。

apiVersion: v1
kind: Namespace
metadata:name: dev
#通过yml方式创建
kubectl create -f namespace-dev.yml
#通过命令创建
kubectl create namespace dev
#查看命令空间,查看当前集群有哪些命名空间
kubectl get ns

集群内部可以通过下面这个规则进行通信
在这里插入图片描述
一个名字空间里的资源也可以简单地以name通信。如果要连接另一个名字空间的服务,必须将名称空间的名称附加到服务的名称上。例如,对于默认名称空间中的web pod,要连接到dev环境或名称空间中的数据库,使用servicename.namespace.svc.cluster.local格式:dbservice.dev.svc.cluster.local。

#获取某个namespace下的pods
kubectl get pods --namespace=dev
#下面这两条命令都是一样的都是获取所有pod对应的命令空间
kubectl get pods --all-namespaces
kubectl get pods -A

资源配额

kubectl create -f resource-quota.yml

resource-quota.yml

apiVersion: v1
kind: ResourceQuota
metadata:name: compute-quotanamespace: dev #指定限制的namespace
spec:hard:pods: "10" #限制pod数量最多是10个requests.cpu: "4" #限制cpu申请的时候为4个requests.memory: 5Gi #限制内存limits.cpu: 10 #使用限制limits.memory: 10Gi #使用限制

这里申请和使用是有区别的,安装Request取申请但是使用的时候最大可以到limits

切换命名空间

#将当前的命令空间切换为dev
kubectl config set-context $(kubectl config current-context) --namespace=dev

相关文章:

k8s-基础知识(Service,NodePort,CusterIP,NameSpace,资源限制)

Service 它提供了服务程序和外部的各种组件通信的能力: 1 Service 有固定的IP和端口 2 Service 背后是pod在工作 Kubernetes 会给Service分配一个静态 IP 地址,Service自动管理、维护后面动态变化的 Pod 集合,当客户端访问 Service&#xff…...

【腾讯云】您使用的腾讯云服务存在违规信息,请尽快处理

收到【腾讯云】您使用的腾讯云服务存在违规信息,请尽快处理,如何解决?在腾讯云服务器部署网站提示网站有违规信息如何处理?腾讯云百科txybk告诉各位站长,在腾讯网址安全中心申诉,申诉通过后截图上传给腾讯云…...

深度学习 Day27——J6ResNeXt-50实战解析

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制🚀 文章来源:K同学的学习圈子 文章目录 前言1 我的环境2 pytorch实现DenseNet算法2.1 前期准备2.1.1 引入库2.1.2 设…...

【力扣 50】Pow(x, n) C++题解(数学+递归+快速幂)

实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000 示例 2: 输入:x 2.10000, n 3 输出:9.26100 …...

速盾:服务器接入CDN后上传图片失败的解决方案

本文将探讨当服务器接入CDN后,上传图片失败的常见原因,并提供解决方案以解决这些问题。同时,我们还将附上一些相关的问题和解答,让读者更好地理解和应对这些挑战。 随着互联网的持续发展,网站的性能和速度对于用户体验…...

LabVIEW高级CAN通信系统

LabVIEW高级CAN通信系统 在现代卫星通信和数据处理领域,精确的数据管理和控制系统是至关重要的。设计了一个基于LabVIEW的CAN通信系统,它结合了FPGA技术和LabVIEW软件,主要应用于模拟卫星平台的数据交换。这个系统的设计不仅充分体现了FPGA在…...

FastSpeech2——TTS论文阅读

笔记地址:https://flowus.cn/share/1683b50b-1469-4d57-bef0-7631d39ac8f0 【FlowUs 息流】FastSpeech2 论文地址:lFastSpeech 2: Fast and High-Quality End-to-End Text to Speechhttps://arxiv.org/abs/2006.04558 Abstract: tacotron→…...

如何才能拥有比特币 - 01 ?

如何才能拥有BTC 在拥有 BTC 之前我们要先搞明白 BTC到底保存在哪里?我的钱是存在银行卡里的,那我的BTC是存在哪里的呢? BTC到底在哪里? 一句话概括,BTC是存储在BTC地址中,而且地址是公开的,…...

Unity | 渡鸦避难所-8 | URP 中利用 Shader 实现角色受击闪白动画

1. 效果预览 当角色受到攻击时,为了增加游戏的视觉效果和反馈,可以添加粒子等动画,也可以使用 Shader 实现受击闪白动画:受到攻击时变为白色,逐渐恢复为正常颜色 本游戏中设定英雄受击时播放粒子效果,怪物…...

K8S--安装metrics-server,解决error: Metrics API not available问题

原文网址:K8S--安装metrics-server,解决error: Metrics API not available问题-CSDN博客 简介 本文介绍K8S通过安装metrics-server来解决error: Metrics API not available问题的方法。 Metrics Server采用了Kubernetes Metrics API的标准&#xff0c…...

flume自定义拦截器

要自定义 Flume 拦截器,你需要编写一个实现 org.apache.flume.interceptor.Interceptor 接口的自定义拦截器类。以下是一个简单的示例: import org.apache.flume.Context; import org.apache.flume.Event; import org.apache.flume.interceptor.Interce…...

安卓Spinner文字看不清

Holo主题安卓13的Spinner文字看不清&#xff0c;明明已经解决了&#xff0c;又忘记了。 spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {TextView textV…...

深入浅出hdfs-hadoop基本介绍

一、Hadoop基本介绍 hadoop最开始是起源于Apache Nutch项目&#xff0c;这个是由Doug Cutting开发的开源网络搜索引擎&#xff0c;这个项目刚开始的目标是为了更好的做搜索引擎&#xff0c;后来Google 发表了三篇未来持续影响大数据领域的三架马车论文&#xff1a; Google Fil…...

宝塔面板部署MySQL并结合内网穿透实现公网远程访问本地数据库

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cp…...

数据结构<1>——树状数组

树状数组&#xff0c;也叫Fenwick Tree和BIT(Binary Indexed Tree)&#xff0c;是一种支持单点修改和区间查询的&#xff0c;代码量小的数据结构。 那神马是单点修改和区间查询&#xff1f;我们来看一道题。 洛谷P3374(模板): 在本题中&#xff0c;单点修改就是将某一个数加上…...

Servlet生命周期

第一阶段&#xff1a; init&#xff08;&#xff09;初始化阶段 当客户端想Servlet容器&#xff08;例如Tomcat&#xff09;发出HTTP请求要求访问Servlet时&#xff0c;Servlet容器首先会解析请求&#xff0c;检查内存中是否已经有了该Servlet对象&#xff0c;如果有&#xff…...

npm i 报一堆版本问题

1&#xff0c;先npm cache clean --force 再下载 插件后缀加上 --legacy-peer-deps 2&#xff0c; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz failed, reason…...

Linux设备管理模型-01:基础数据结构

文章目录 1. 设备管理模型2. 基本数据结构2.1 kobject2.2 kset 1. 设备管理模型 设备模型是内核提供的一个编写驱动的架构。 设备管理是设备-总线-驱动结构。 linux中的设备是由树状模型组织的&#xff0c;从sysfs中可以查看树状结构。 他本身实现了&#xff1a; 电源管理热…...

opencv#32 可分离滤波

滤波的可分离性 就是将一个线性滤波变成多个线性滤波&#xff0c;这里面具体所指的是变成x方向的线性滤波和y方向的线性滤波。无论先做x方向的滤波还是y方向滤波&#xff0c;两者的叠加结果是一致的&#xff0c;这个性质取决于滤波操作是并行的&#xff0c;也就是每一个图像在滤…...

android 导航app 稳定性问题总结

一 重写全局异常处理&#xff1a; 1 是过滤掉一些已知的无法处理的 问题&#xff0c;比如TimeoutException 这种无法根除只能缓解的问题可以直接catch掉 2 是 一些无法继续的问题可以直接杀死重启&#xff0c;一些影响不是很大的&#xff0c;可以局部还原 比如&#xff1a; p…...

第11次修改了可删除可持久保存的前端html备忘录:将样式分离,可以自由秒添加秒删除样式

第11次修改了可删除可持久保存的前端html备忘录&#xff1a;将样式分离&#xff0c;可以自由秒添加秒删除样式 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"…...

hcip高级网络知识

一&#xff1a;计算机间信息传递原理 抽象语言----编码 编码---二进制 二进制---转换为电流&#xff08;数字信号&#xff09; 处理和传递数字信号 二&#xff1a;OSI--七层参考模型 ISO--1979 规定计算机系统互联的组织&#xff1a; OSI/RM ---- 开放式系统互联参考模型 --- 1…...

常用电子器件学习——MOS管

MOS管介绍 MOS&#xff0c;是MOSFET的缩写。MOSFET 金属-氧化物半导体场效应晶体管&#xff0c;简称金氧半场效晶体管&#xff08;Metal-Oxide-Semiconductor Field-Effect Transistor, MOSFET&#xff09;。 一般是金属(metal)—氧化物(oxide)—半导体(semiconductor)场效应晶…...

System.Data.SqlClient.SqlException:“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误

目录 背景: 过程: SQL Express的认识: 背景: 正在运行程序的时候&#xff0c;我遇到一个错误提示&#xff0c;错误信息如下&#xff0c;当我将错误信息仔细阅读了一番&#xff0c;信息提示的很明显&#xff0c;错误出现的来源就是连接数据库代码这块string connStr "s…...

数据库(SQL语句:DMLDQL)

目录 有关数据表的DML操作 1.1 INSERT 语句 1.2 REPLACE 语句 replace语句的语法格式&#xff08;三种&#xff09; REPLACE 语句 和 INSERT 语句的区别 1.3 DELETE 语句 | | TRUNCATE 语句 DELETE TRUNCATE DROP 1.4 UPDATE 数据 1.5 SELECT 语句 &#xff08;DQL数…...

AnimatedDrawings:让绘图动起来

老样子&#xff0c;先上图片和官网。这个项目是让绘制的动画图片动起来&#xff0c;还能绑定人体的运动进行行为定制。 快速开始 1. 下载代码并进入文件夹&#xff0c;启动一键安装 git clone https://github.com/facebookresearch/AnimatedDrawings.gitcd AnimatedDrawingspip…...

红黑树浅浅学习

红黑树浅浅学习 红黑树概念红黑树平衡性调整 红黑树概念 二叉树&#xff1a;二叉树是每个节点最多有两个子树的树结构。二叉查找树&#xff1a;又称“二叉搜索树”&#xff0c;左孩子比父节点小&#xff0c;右孩子比父节点大&#xff0c;还有一个特性就是”中序遍历“可以让结…...

QGraphicsView 如何让图形大小适配窗口

1. setSceneRect 做什么用&#xff1f; setSceneRect是一个Qt中的函数&#xff0c;用于设置QGraphicsView中的场景矩形&#xff08;QRectF&#xff09;。 QGraphicsView是一个用于显示和编辑图形场景的控件&#xff0c;而setSceneRect函数用于设置场景矩形&#xff0c;即指定…...

sqlmap使用教程(3)-探测注入漏洞

1、探测GET参数 以下为探测DVWA靶场low级别的sql注入&#xff0c;以下提交方式为GET&#xff0c;问号&#xff08;?&#xff09;将分隔URL和传输的数据&#xff0c;而参数之间以&相连。--auth-credadmin:password --auth-typebasic &#xff08;DVWA靶场需要登录&#xf…...

期待已久!阿里云容器服务 ACK AI 助手正式上线

作者&#xff1a;行疾 大模型技术的蓬勃发展持续引领 AI 出圈潮流&#xff0c;各行各业都在尝试采用 AI 工具实现智能增效。 2023 年云栖大会上&#xff0c;阿里云容器服务团队正式发布 ACK AI 助手&#xff0c;带来大模型增强智能诊断&#xff0c;帮助企业和开发者降低 K8s …...