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

容器服务基础

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

相关文章:

容器服务基础

1.腾讯云容器服务 使用该服务,开发者将无需安装、运维、扩展您的集群管理基础设施,只需进行简单的API调用,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。 创建集群--创建工作负载/创建ingr…...

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…...

AUTOSAR汽车电子嵌入式编程精讲300篇-基于FPGA的CAN FD汽车总线数据交互系统设计

目录 前言 汽车总线以及发展趋势 汽车总线技术 汽车总线发展趋势 CAN FD总线国内外研究现状 2 系统方案及CAN FD协议分析 2.1系统控制方案设计 2.2 CAN FD总线帧结构分析 2.2.1数据帧分析 2.2.2远程帧分析 2.2.3过载帧分析 2.2.4错误帧分析 2.2.5帧间隔分析 2.3位…...

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

一、非局部操作的数学定义与理论框架 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中…...

深入讲解MyBatis

1. MyBatis 的背景和优势 背景:在 Java 开发中,传统的 JDBC 操作数据库代码繁琐,需要手动管理数据库连接、编写 SQL 语句、处理结果集等,开发效率低且容易出错。MyBatis 应运而生,它通过将 SQL 语句与 Java 代码分离&a…...

URL调用本地Ollama模型

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

DeepSeek和ChatGPT的优劣或者区别(答案来DeepSeek和ChatGPT)

DeepSeek的答案 DeepSeek与ChatGPT作为当前两大主流AI模型,在架构设计、性能表现、应用场景等方面存在显著差异,以下从多个维度进行对比分析: 一、架构与训练效率 架构设计 DeepSeek:采用混合专家(MoE)框架…...

【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…...

Vue Router 导航方式详解:声明式导航与编程式导航

Vue Router 是 Vue.js 官方推荐的路由管理器,提供了两种主要的导航方式:声明式导航和编程式导航。这两种方式各有特点,适用于不同的场景。本文将详细介绍它们的用法、区别以及底层实现原理。 1. 声明式导航 1.1 什么是声明式导航&#xff1f…...

【RabbitMQ重试】重试三次转入死信队列

以下是基于RabbitMQ死信队列实现消息重试三次后转存的技术方案&#xff1a; 方案设计要点 队列定义改造&#xff08;核心参数配置&#xff09; Bean public Queue auditQueue() {Map<String, Object> args new HashMap<>();args.put("x-dead-letter-exchan…...

接入 deepseek 实现AI智能问诊

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

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

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

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

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

string 与 wstring 的字符编码

测试代码: #include<stdio.h> #include<stdlib.h> #include<windows.h> #include <locale.h> #include <string> #include <iostream>// 函数用于计算UTF-8字符串中的字符数 int utf8_strlen(const char* str) {int len = 0;for (; *s…...

【Spring】什么是Spring?

什么是Spring&#xff1f; Spring是一个开源的轻量级框架&#xff0c;是为了简化企业级开发而设计的。我们通常讲的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通讯 第一步&#xff1a;组态1214CPU&#xff0c;勾选时钟存储器 第二步&#xff1a;防护与安全里面连接机制勾选允许PUT/GET访问 第三步&#xff1a;添加PLC 第四步&#xff1a;点击网络试图&#xff0c;选中网口&#xff0c;把两个PLC连接起…...

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

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

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

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

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

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

RNN-day1-NLP基础

NLP基础 一、基本概念 自然语言处理&#xff1a;Natural Language Processing,主要目标是让计算机能够理解、解释和生成人类语言的数据。 1 基本概念 1.1NLP概念 语言&#xff1a;人类沟通的机构化系统&#xff0c;包括声音、书写符号、手势 自然语言&#xff1a;自然进化…...

常见string库中的函数(C语言超详细)

文章目录 strcspnstrcpystrncpystrcatstrncatstrcmpstrncmpstrchrstrrchrstrstrstrtokstrlenstrnlen strcspn 原型: size_t strcspn(const char *str1, const char *str2);功能&#xff1a; strcspn 会扫描 str1&#xff0c;并返回一个整数&#xff0c;表示 str1 中第一个匹配…...

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

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

deepseek+kimi自动生成ppt

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

# C指针地址CUP寄存器访问IO内存映射

C指针地址&CUP寄存器访问&IO内存映射 在裸机编程中&#xff0c;C语言可以像汇编语言一样直接操作芯片寄存器地址进行读取和写入&#xff0c;主要是由于以下几个原因&#xff1a; 1. 裸机环境下没有操作系统的干预 裸机编程是指直接在硬件上运行程序&#xff0c;没有…...

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

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

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

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