容器服务基础

news2025/4/22 6:21:31

1.腾讯云容器服务

使用该服务,开发者将无需安装、运维、扩展您的集群管理基础设施,只需进行简单的API调用,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。

创建集群--创建工作负载/创建ingress--运行

2. 产品概念

集群:容器运行时所需要的云资源的结合,包含云服务器负载均衡器,控制器等资源

实例(pod):里面存在一个或者多个容器实例,共享存储和网络空间

在K8S中,同⼀个Pod内不同容器哪些资源是共用的,哪些资源是隔离的? -阿里云开发者社区

工作负载:如控制器这样的资源对象,主要用于管理pod副本的创建(标签),调度(容忍度,亲和性,nodename,nodeselector)

service:多个pod实例以及访问这些实例的规则组成(clasterip,nodeport,loadbalancer,externalname)metallb

ingress:用于将外部http(s)流量通过不同路径或者不同域名或者重定向的方式路由到service的规则的集合

helm:包管理工具,可以对应用程序进行快速安装升级回滚等(.yaml文件主要存放变量,values.yaml里面是我们应用程序所需要的具体参数)

镜像仓库:存放docker镜像,docker镜像用于部署容器服务

3.腾讯云容器服务TKE和自建容器服务对比

TKE:

1.创建集群时,可以选择托管集群或者独立集群,托管集群的master和etcd由腾讯云技术团队集中管理和维护,很方便快捷安全可靠

2.只需要启动集群,创建负载点点点就好了,易于操作,涉及到的指标也多

3.存储运维成本也低,还可以设置告警,控制台也可以查看容器log,易于维护

4.TKE提供弹性伸缩能力,根据业务运行监控容器的cpu,内存,带宽等指标,进行扩缩容服务 [7]

自建容器:人工搭建,成本高,也比较复杂,还没有告警,需要手动排查故障,创建工作负载也需要yaml文件的方式,难度比TKE的图形化界面操作更加复杂

4.持续集成持续交付

持续集成:强调开发人员提交了新代码之后,立即进行构建、(单元)测试。根据测试结果,您可以确定新代码和原有代码能否正确地集成在一起。


持续交付:在持续集成的基础上,将集成后的代码部署到运行环境

5.k8s健康检查方式

通过探针实现

存活探针检查:如对指定端口进行tcp检查,若是失败,将pod对应的ip:port从后端endpoint列表删除

就绪探针检查:如对指定路径的内容进行http get请求,若是失败,杀死容容器,可以根据重启策略做出相应的补救

6.创建容器镜像服务时需要注意什么

1.kube-proxy 使用iptables实现负载均衡,若是需要使用ipvs,需要在集群构建时就开启ipvs

2.创建集群时,需要根据自己的业务场景选择合适的集群模式,独立集群/托管集群

3.设置cpu,内存等资源的request和limit,保证业务的可用性

4.选择合适的访问方式①公网访问(loadbalancer)②仅在集群内部访问(clasterip)③vpc内网访问④主机端口访问(nodeport)

5.创建工作负载时可设置容器的健康检查(就绪探针,存活探针),防止业务异常pod无法感知从而导致pod状态正常但是业务异常的情况

6.设置合适的pod调度策略(noadname,noadselector,亲和性,容忍度)

7.集群的扩容缩容

手动添加/移除节点

弹性伸缩自动添加/移除节点

1.扩容触发条件
①集群中出现因为缺少可用资源而无法调度的容器实例时,将触发已设置的自动扩容策略,并尝试扩容节点来运行这些实例。
②集群自动扩缩容程序会每隔一段时间扫描一次,查看是否有不可调度的 Pod 需进行扩容,并尝试扩容节点来运行这些 Pod。

2.缩容触发条件
集群中节点空闲资源较多时,将触发缩容。通常是指,当节点上所有 Pod 的 CPU 或者内存占用资源/可分配资源的比值小于您所设定的百分值时,该节点就会尝试缩容。同时,只有该节点上所有 Pod 都能够成功调度到其他节点上时,Pod 才会被驱逐从而缩容成功。

3.pod不会缩容?

①有kube-system下的pod

②有非控制器创建的pod

③pod有本地存储

8.生命周期

1.健康:正常运行并且连接到集群

2.异常:节点运行异常,未连接上集群

3.已封锁:节点已被封锁,不允许新的pod调度到该节点

4.驱逐中:节点正在被驱逐到其他节点

9.k8s对象

工作负载

deployment:调度+更新回滚+检查+无状态服务(nginx:可以通过301,302    等访问到页面,无固定模式就可访问到一个页面)

statefulset:有状态服务(mysql,可以通过固定的名称访问到固定的主机,有序性)

创建的pod拥有持久型的标识符,pod迁移或者销毁重启后,标识符会保留,在需要持久化存储时,可以通过标识符对存储卷进行一一对应,如果不需要持久标识符,建议使用deployment

daemonset:一个主机执行一个pod副本(监控,日志

job:一次性任务,比如说批量操作等

job执行完后,不会再创建新的pod,也不会删除pod,可以在日志中查看已经完成的pod的日志,若是删除job,job创建的pod也会被删除,同时也无法查看到job创建的pod的日志

cronjob:计划性执行一个任务

服务

service:

四层负载均衡,客户访问时,service负载均衡器会将流量转发到与servie相关的pod集合中的任意pod

ingress:

七层负载均衡和反向代理功能,可以实现http/https业务,可以基于不同url路径或者主机名进行访问控制

配置

configmap:用于保存配置信息,键值对形式

secret:用于保存敏感信息,例如密码,令牌

存储

volume:存储容器访问的相关数据

PV:k8s集群中配置的一块存储,pv独立于pod的生命周期,根据不同的存储类的类型创建不同类型的pv

PVC:集群内的存储请求,例如pv是pod使用的节点中的资源,pvc则生命使用pv资源,当pv资源不足时,pvc也可以动态创建pv

storageclass:存储类,用于描述存储的类型,通过存储类配合pvc可以动态创建需要的存储资源

10.service访问方式

访问模式:clusterip,loadport,loadbalance,enternalname

访问方式:

1.提供公网访问(loadbalance)

2.仅在集群内访问(clusterip,service会自动分配访问的ip,数据库等可以通过此形式访问,以保证服务网络隔离)

3.vpc内网访问:(loadbalance比如微服务内部通信、数据库访问、内网管理界面,或者需要避免公网流量费用和安全性问题  )

需要指出ClusterIP只在集群内部,而VPC内网允许同一VPC下的其他资源访问,比如自建数据库或其他非K8s的服务。

4.主机端口访问:nodeport

11.什么是 VPC 内网访问?

  • 类比场景:把 VPC(虚拟私有云)想象成一个公司内部的大楼内网。

  • 作用:它会给你的 Kubernetes 服务分配一个内网 IP 地址(比如 10.0.0.123),这个地址只能在你的 VPC 内部访问,外部互联网无法直接访问。

  • 实现方式:通常通过云厂商的内网负载均衡器(如阿里云的 SLB、AWS 的 ALB、腾讯云的 CLB)实现。

12. docker生成镜像的方式

...通过dockerfile自动构建镜像

①尽量精简,不要安装多余软件包

②尽量选择官方镜像作为基础版本,减少基础镜像体积

③尽量把多条RUN命令连接起来,方便理解并且节省空间

④通过 commit -t标记构建镜像,方便新创建的镜像的管理

⑤push前现在本地运行,确保无误

...通过容器操作,并执行commit打包生成的镜像

①运行基础镜像

②安装依赖进行相关操作

③使用commit命令打包镜像

13.如何选择运行时组件

容器运行时是k8s运行的重要组件之一,负责管理镜像和容器的生命周期,kubelet通过container runtime interface (CRI)与容器运行时交互,以管理镜像和容器,腾讯云TKE支持用户选择contained和docker作为运行时组件,container调用链更短,组件更少,更稳定,占用资源更少,建议选择contained

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

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

相关文章

C++基础知识(二)之数据类型、指针和内存、数组

六、C数据类型 1、sizeof运算符 sizeof运算符用于求数据类型或变量占用的内存空间。 用于数据类型:sizeof(数据类型) 用于变量:sizeof(变量名) 或 sizeof 变量名 注意: 在32位和64位操作系统中,同一种数据类型占用的内存空间…

LLMs之DeepSeek r1:Logic-RL的简介、安装和使用方法、案例应用之详细攻略

LLMs之DeepSeek r1:Logic-RL的简介、安装和使用方法、案例应用之详细攻略 目录 Logic-RL的简介 1、Logic-RL的特点 2、性能 Logic-RL 的安装和使用方法 1、安装 2、使用方法 数据准备 基础模型 指令模型 训练执行 实现细节 Logic-RL的案例应用 Logic-RL…

【神经网络框架】非局部神经网络

一、非局部操作的数学定义与理论框架 1.1 非局部操作的通用公式 非局部操作(Non-local Operation)是该研究的核心创新点,其数学定义源自经典计算机视觉中的非局部均值算法(Non-local Means)。在深度神经网络中,非局部操作被形式化为: 其中: 1.2 与传统操作的对比分析…

22.[前端开发]Day22-CSS单位-CSS预处理器-移动端视口

1 CSS常见单位详解 CSS中的单位 CSS中的绝对单位( Absolute length units ) CSS中的相对单位( Relative length units ) 1.em: 相对自己的font-size;如果自己没有设置, 那么会继承父元素的font-size 2.如果font-size中…

URL调用本地Ollama模型

curl http://192.168.2.247:11434/api/generate -d "{ \"model\": \"deepseek-r1:8b\", \"prompt\": \"Who r u?\" ,\"stream\":false}" 连续对话

【python】matplotlib(animation)

文章目录 1、matplotlib.animation1.1、FuncAnimation1.2、修改 matplotlib 背景 2、matplotlib imageio2.1、折线图2.2、条形图2.3、散点图 3、参考 1、matplotlib.animation 1.1、FuncAnimation matplotlib.animation.FuncAnimation 是 Matplotlib 库中用于创建动画的一个…

ubuntu24.04安装布置ros

最近换电脑布置机器人环境,下了24.04,但是网上的都不太合适,于是自己试着布置好了,留作有需要的人一起看看。 文章目录 目录 前言 一、确认 ROS 发行版名称 二、检查你的 Ubuntu 版本 三、安装正确的 ROS 发行版 四、对于Ubuntu24…

接入 deepseek 实现AI智能问诊

1. 准备工作 注册 DeepSeek 账号 前往 DeepSeek 官网 注册账号并获取 API Key。 创建 UniApp 项目 使用 HBuilderX 创建一个新的 UniApp 项目(选择 Vue3 或 Vue2 模板)。 安装依赖 如果需要在 UniApp 中使用 HTTP 请求,推荐使用 uni.requ…

网络爬虫js逆向之异步栈跟栈案例

【注意!!!】 前言: 1. 本章主要讲解js逆向之异步栈跟栈的知识(通过单步执行调试) 2. 使用关键字搜定位加密入口 3. 本专栏通过多篇文章【文字案例】的形式系统化进行描述 4. 本文章全文进行了脱敏处理 5. 详…

机器学习 - 需要了解的条件概率、高斯分布、似然函数

似然函数是连接数据与参数的桥梁,通过“数据反推参数”的逆向思维,成为统计推断的核心工具。理解它的关键在于区分“参数固定时数据的概率”与“数据固定时参数的合理性”,这种视角转换是掌握现代统计学和机器学习的基础。 一、在学习似然函…

【Spring】什么是Spring?

什么是Spring? Spring是一个开源的轻量级框架,是为了简化企业级开发而设计的。我们通常讲的Spring一般指的是Spring Framework。Spring的核心是控制反转(IoC-Inversion of Control)和面向切面编程(AOP-Aspect-Oriented Programming)。这些功能使得开发者…

[笔记] 汇编杂记(持续更新)

文章目录 前言举例解释函数的序言函数的调用栈数据的传递 总结 前言 举例解释 // Type your code here, or load an example. int square(int num) {return num * num; }int sub(int num1, int num2) {return num1 - num2; }int add(int num1, int num2) {return num1 num2;…

开放式TCP/IP通信

一、1200和1200之间的开放式TCP/IP通讯 第一步:组态1214CPU,勾选时钟存储器 第二步:防护与安全里面连接机制勾选允许PUT/GET访问 第三步:添加PLC 第四步:点击网络试图,选中网口,把两个PLC连接起…

(原创,可用)SSH实现内外网安全穿透(安全不怕防火墙)

目前有A、B终端和一台服务器,A、B机器不能直接访问,服务器不能直接访问A、B终端但是A、B终端可以访问服务器,这个场景很像我们有一台电脑在单位内网,外机器想访问内网系统,可能大家目前想到的就是frp之类穿透工具&…

第二节 docker基础之---镜像构建及挂载

查看当前镜像: [rootdocker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE [rootdocker ~]#很明显docker是咱们新搭建的所以目前还没有镜像 1,搜索镜像: [rootdocker ~]# docker search centos 搜索镜像并过滤是官…

LLM学习笔记1——本地部署Meta-Llama-3.2-1B大模型

系列文章目录 参考博客 参考博客 文章目录 系列文章目录前言与调用一、部署要求二、实现步骤0.深度学习环境错误1,验证pytorch版本时提示以下问题:错误2,验证pytorch版本时提示以下问题:错误3,有时候还会提示你有一些…

AI安全最佳实践:AI应用开发安全评估矩阵(上)

生成式AI开发安全范围矩阵简介 生成式AI目前可以说是当下最热门的技术,吸引各大全球企业的关注,并在全球各行各业中带来浪潮般的编个。随时AI能力的飞跃,大语言模型LLM参数达到千亿级别,它和Transformer神经网络共同驱动了我们工…

deepseek+kimi自动生成ppt

打开deepseek官网,输入详细的需求,让他生成个ppt 接着deepseek开始思考生成了 接着复制生成了的内容 打开kimi粘贴刚才deepseek生成的内容 可以一键生成啦,下载编辑使用吧

《薄世宁医学通识50讲》以医学通识为主题,涵盖了医学的多个方面,包括医学哲学、疾病认知、治疗过程、医患关系、公共卫生等

《薄世宁医学通识50讲》是一门由薄世宁医生主讲的医学通识课程,该课程旨在通过深入浅出的方式,向广大听众普及医学知识,提升公众对医学的认知和理解。 晓北斗推荐-薄世宁医学通识 以下是对该课程的详细介绍: 一、课程概述 《薄世…

突破与重塑:逃离Java舒适区,借Go语言复刻Redis的自我突破和成长

文章目录 写在文章开头为什么想尝试用go复刻redis复刻redis的心路历程程序员对于舒适区的一点看法关于mini-redis的一些展望结语 写在文章开头 在程序员的技术生涯长河中,我们常常会在熟悉的领域中建立起自己的“舒适区”。于我而言,Java 就是这片承载…