当前位置: 首页 > 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…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

day52 ResNet18 CBAM

在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...

C++ 设计模式 《小明的奶茶加料风波》

👨‍🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...