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

【K8S】快速入门Kubernetes

之前企业都是使用容器化和来构建自己的服务和应用程序,其中容器化优点有很多:提升了部署效率、稳定性、提高了资源的利用率降低了成本。

但是也带来了一些新的问题:容器的数量变得很多,管理就是一个新的问题。所以Kubernetes就出现了,用于管理容器化引擎的部署、扩展和管理等等

Kubernetes组件

Pod

Kubernetes最小调度单元,是一个或者多个容器的组合,一般场景都是单个容器,多个容器的场景就是仅限于这些容器是高度耦合的情况下,它们之间共享某些资源,不得不放在同一个容器当中,比如边车模式,就是将一个应用容器和一个辅助容器放到同一个Pod中,这个辅助容器就是Sidecar(边车模式),通常用于实现一些辅助功能,日志收集、服务监控等

Node

首先一个节点就是可以理解为一个简单的虚拟机,我们可以在节点上运行一个或者多个Pod(Kubernetes最小调度单元,是一个或者多个容器的组合)

现在我们已经将应用程序和数据库放到两个Pod中,如果需要进行访问就需要在内部根据对应的ip进行访问,但是会有两个问题:

  1. ip是内部ip集群外部无法访问

  2. Pod不是一个稳定实体,很容易被创建和销毁,所以每一次的ip都不是固定的

所以就需要引入一个新的组件service

Service

service可以将一组Pod封装成一个服务,根据一个同一个路口进行访问

服务也分为内部服务和外部服务,内部服务就是我们自己内部使用的服务,外部服务就是我们提供给用户的后端接口之类的,第一种是ip地址和端口来访问Service(仅限开发环境),第二种就是我们通过对应的域名来进行访问所以这个时候就需要一个组件Ingress

Ingress

管理集群外部访问集群内部服务的入口和方式,可以通过Ingress来配置不同的转发策略,根据不同的规则访问不同的Service;还可以配置域名将原来ip+端口方式转换为域名来访问Service,还有负载均衡、SSL证书之类的

ConfigMap

ConfigMap主要是将我们的程序和配置信息进行解耦合的一个组件,正常我们的数据库配置信息是存储在应用程序的,但是如果说我需要换一个数据库,就需要重新编译,那么对于我们服务的可用性,就造成了破坏,所以就可以将对应的配置信息存储到ConfigMap当中,但是ConfigMap存储信息是明文的,所以需要一定的加密策略

Sercret

和ConfigMap类似,但是做了一层Base64编码,所以不能完全保证安全性,所以就需要使用K8S给我们提供的网络安全、访问控制、身份认证等

Volumes

持久化组件,当容器重启或者销毁的时候,里面的数据就会丢失,所以就需要通过Volumes将一些持久化资源,挂在到本地磁盘上

Deployment

我们目前的程序是一个节点的,所以无法保证程序的高可用性,所以就需要搭建集群。而Deployment可以定义和管理应用程序的副本数量以及应用程序的更新策略,可以简化应用程序的部署和更新操作

Pod可以理解为在容器的上面加了一层抽象,这样就可以将一个或者多个容器组合在一起;而Deployment就可以理解在Pod上面加了一层抽象,将一个或者多个Pod组合在一起,并且还具有副本控制(可以保证我们应用程序的可用性,如果有一个挂了,就会生成一个新的替换)、滚动更新(定义和管理应用程序的更新策略,实现平滑更新,逐渐使用新的版本替换旧的版本)、自动扩缩容

StatefulSet

和Deployment类似,但是我们应用程序之间是无状态的,是不需要进行数据同步的,数据库之间是有状态的,是需要相互同步传递数据的。statefulSet也是有副本控制、自动扩缩容的机制,并且还有稳定的网络标识符和持久化存储,像一些数据库、redis、mq这些有状态的程序都是需要通过StatefulSet进行管理,但是StatefulSet还是比较复杂的,一般是可以将数据库这些有状态的程序从集群当中拿出来,单独部署就防止了上述问题

Kubernetes架构

Kubernetes是一个典型的Master-Worker架构,Master-Node负责管理整个集群,Worker-Node负责运行应用程序和服务

为了运行应用程序,Worker-Node主要是有三个组件:kubelet(管理和维护每个节点上的Pod,确保按照预期运行;定期从api-server组件接收新的或者修改后的Pod规范,监控工作节点的运行情况,汇报给api-server)、kube-proxy(为node提供网络代理和负载均衡服务)、container-runtime(可以理解为运行程序的环境,负责拉取容器镜像、创建容器、启动或者停止容器)

Master节点组件:

Kube-Apiserver:提供Kubernetes集群的API接口服务,类似集群的网关,整个系统的入口,所有的请求都会经过它,然后进行分发,比如一些创建、更新、删除Pod请求、查询集群状态的命令;并且读增删改查操作进行认证、授权和访问控制,确保只有认证和授权的请求才可以进行操作

Scheduler:负责监控集群中所有节点的资源使用情况,根据一些调度策略,将一些Pod调度到合适的节点运行。例如,增加一个Pod,第一个节点上占用了80%,第二个节点占用了20%,那个Pod就会自动的存储在第二个资源上

Controller-Manager:负责管理集群中的各种资源对象的状态(Node、Pod、Server等)确保各种资源都处于我们预期的状态

Etcd:高可用的键-值存储系统,用于存储集群中的所有资源对象的状态信息。比如,一个Pod挂掉了,或者新增一个Pod都会记录到ectd里面,整个集群的数据存储中心

Cloud-Controller-Manager:如果你使用的是云服务厂商的云服务集群,就需要这个组件了,负责与云平台相关API进行交互,提供一致的管理接口,在不同的云平台中运行和管理他们的应用程序

相关文章:

【K8S】快速入门Kubernetes

之前企业都是使用容器化和来构建自己的服务和应用程序,其中容器化优点有很多:提升了部署效率、稳定性、提高了资源的利用率降低了成本。 但是也带来了一些新的问题:容器的数量变得很多,管理就是一个新的问题。所以Kubernetes就出…...

如何在 MySQL 中处理大量的 DELETE 操作??

全文目录: 开篇语前言摘要简介概述DELETE 操作的基本概念常用的 DELETE 方法 核心源码解读简单 DELETE 语句批量 DELETE 示例 案例分析案例1:使用简单 DELETE 删除用户数据案例2:使用分批 DELETE 应用场景演示场景1:用户管理系统场…...

LabVIEW中句柄与引用

在LabVIEW中,句柄(Handle) 是一种用于引用特定资源或对象的标识符。它类似于指针,允许程序在内存中管理和操作复杂的资源,而不需要直接访问资源本身。句柄用于管理动态分配的资源,如队列、文件、网络连接、…...

【三十四】【QT开发应用】音量图标以及滑动条,没有代码补全的小技巧

效果展示 鼠标位于音量图标区域内,显示出滑动条。鼠标移出音量图标区域内滑动条隐藏。鼠标点击音量图标,如果此时音量为0,音量变成50,如果此时音量不为零,音量变为0。 CVolumeButton.h 音量图标头文件 #pragma once …...

Android修改第三方应用相机方向

以下修改基于Android7.1 diff --git a/frameworks/base/core/java/android/hardware/Camera.java b/frameworks/base/core/java/android/hardware/Camera.java index 8c7434b..7201481 100755 --- a/frameworks/base/core/java/android/hardware/Camera.java b/frameworks/ba…...

Python 读取文件汇总

readline和readlines的区别 使用 open()读取文件时,readline是读取文件的一行;而readlines是加载全部文档,以list形式保存每一行内容。 使用with避免资源泄露 with语句不仅限于open()函数,任何实现了上下文管理协议的对象都可以…...

云原生:一张图了解devops 中CI/CD

一个典型的云原生应用的开发和部署过程,其中涉及到的主要工具有 Git、Docker、Jenkins/CircleCI、Ansible、Kubernetes 等。以下是每个步骤的简要说明: 开发人员(Developers)使用 Git 进行版本控制,他们将代码推送到 G…...

无人机之自组网通信技术篇

无人机的自组网通信技术是一种利用无人机作为节点,通过无线通信技术实现节点间自主组网、动态路由和数据传输的技术。 一、技术原理与特点 技术原理:无人机自组网技术基于自组织网络(Ad-Hoc Network)的原理,通过无线…...

【WebLogic】Oracle发布2024年第四季度中间件安全公告

Oracle于美国时间2024年10月15日发布了 WebLogic 12c(12.2.1.4.0)和14c(14.1.1.0.0)两个大版本2024年第4季度的安全公告,涉及漏洞ID共计 6 个,包含2个高危漏洞 2 个,4个中危漏洞,其中…...

Java集合(3:Set和Map)

文章目录 Set概述哈希值HashSet去重原理LinkedHashSetTreeSet自定义排序规则 Map概述Map的基本方法Map集合的获取功能哈希表HashMap底层源码 特点注意 Set 概述 Set集合也是一个接口,继承自Collection,与List类似,都需要通过实现类来进行操…...

【Golang】Gin框架中如何定义路由

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

CPU内存飙升

CPU 飙升介绍 CPU 飙升是指中央处理器(CPU)的使用率在短时间内急剧上升,达到一个较高的水平。正常情况下,CPU 会根据系统和应用程序的需求合理分配资源,使用率会在一定范围内波动。但当 CPU 飙升时,可能会导…...

【Java】LinkedList实现类的使用

LinkedList实现类的使用 package com.star.test04;import java.util.Iterator;import java.util.LinkedList;/** * author : Starshine */public class Test { //这是main方法,程序的入口 public static void main(String[] args) { /* LinkedL…...

创建人物状态栏

接下来,我们来尝试制作一下我们的UI,我们会学习unity基本的UI系统 ************************************************************************************************************** 我们要先安装一个好用的插件到我们的unity当中,帮助…...

django5入门【01】环境配置

注意: ⭐前提:安装了annaconda(python版本管理工具),如果没有安装,强烈建议安装一下!!!操作: 前言: 这里新创建一个名为“python_3.11_start_dja…...

1000集《楼兰》系列短剧开机仪式在疆举行,开启全球传播新篇章

2024年10月18日,光明媚,秋风送爽。 在这个收获的季节里,倍受期待的楼兰系列短剧《楼兰之天女归来》和《楼兰之时空秘宝》在新疆吐鲁番东方红卓览文化博物馆举行了隆重的开机仪式,正式拉开了摄制的序幕。 1000集《楼兰》系列短剧…...

【景观生态学实验】实验五 景观生态脆弱性评价

实验目的 1.学习层次分析模型思路,对丹江口库区2000年景观生态脆弱性评价建模:通过实验课的学习,深入理解层次分析(Analytic Hierarchy Process,AHP)理论与模型,了解其在决策问题中的应用&…...

ChatGPT 现已登陆 Windows 平台

今天,OpenAI 宣布其人工智能聊天机器人平台 ChatGPT 已开始预览专用 Windows 应用程序。OpenAI 表示,该应用目前仅适用于 ChatGPT Plus、Team、Enterprise 和 Edu 用户,是一个早期版本,将在今年晚些时候推出"完整体验"。…...

和鲸社区数据科学实训季,西安交通大学圆满收官,西安,后会有期!

和鲸社区数据科学实训季活动已走进数十家高校,在西安的收官之站,落定西安交通大学管理学院,为本次西安之旅画上了圆满的句号。 和鲸社区 2024秋 数据科学实训季以“帮助同学积累真实场景项目经验”为出发点,提供 60 个数据科学实践…...

工作使用篇:如何在centos系统中安装anaconda

在CentOS 7上安装Anaconda的步骤如下: 1. 下载Anaconda 首先,你需要下载Anaconda的安装脚本。可以使用wget命令从Anaconda的官网获取最新版本的安装脚本。打开终端并运行以下命令: wget https://repo.anaconda.com/archive/Anaconda3-2024…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...