dockerk8s常用知识点

1、什么是docker

容器化和虚拟化对比

▪开源的应用容器引擎,基于 Go 语言开发

▪容器是完全使用沙箱机制,容器开销极低

▪Docker就是容器化技术的代名词 

▪Docker也具备一定虚拟化职能

docker三大核心:

  1. Docker Engine: 提供了一个可以用来运行和管理容器的平台,它由客户端和服务端组成。

  2. Docker Compose: 用于定义和运行多容器Docker应用的工具(单机)。

  3. Docker Swarm: 用于管理Docker集群的工具,可以将多个Docker主机组成的系统转换为单一的虚拟Docker主机(集群)。

2、容器与镜像

▪镜像: 镜像是文件,是只读的,提供了运行程序完整的软硬件资源,是应用程序的"集装箱"

▪容器: 是镜像的实例,由Docker负责创建,容器之间彼此隔离

3、docker执行流程

4、docker常用指令

docker pull 镜像名<:tags> - 从远程仓库抽取镜像 
docker images - 查看本地镜像
docker run 镜像名<:tags> - 创建容器,启动应用
docker ps - 查看正在运行中的镜像
docker rm <-f> 容器id - 删除容器
docker rmi <-f> 镜像名:<tags> - 删除镜像--容器中执行的命令
格式:docker exec [-it] 容器id 命令
exec 在对应容器中执行命令
-it 采用交互方式执行命令
实例:docker exec -it 0738ed2fe68b /bin/bash

5、Dockerfile构建镜像

▪Dockerfile是一个包含用于组合镜像的命令的文本文档

▪Docker通过读取Dockerfile中的指令按步自动生成镜像

▪docker build -t 机构/镜像名<:tags> Dockerfile目录

tomcat部署应用的dockerfile

FROM tomcat:latest
MAINTAINER ccp
WORKDIR /usr/local/tomcat/webapps   --设置工作目录
ADD docker-web ./docker-web         --复制文件(从宿主机复制到容器)

xxl-job对应的dockerfile

FROM openjdk:8-jre-slim
MAINTAINER xuxueliENV PARAMS=""ENV TZ=PRC        --设置环境常量
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
--RUN 相当于在Build构建时执行命令ADD target/xxl-job-admin-*.jar /app.jar --复制文件ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]
--ENTRYPOINT 容器启动时执行的命令--CMD 容器启动后执行默认的命令或参数

6、镜像分层(layer)

7、dockerFile执行命令

ENV 设置环境常量
RUN 相当于在Build构建时执行命令
ADD 复制文件
ENTRYPOINT 容器启动时执行的命令
CMD 容器启动后执行默认的命令或参数

8、容器间通信

Link单向通信

Bridge网桥双向通信

网桥实现原理--虚拟网卡

9、容器间数据共享(volumn)

格式:
docker run --name 容器名  -v 宿主机路径:容器内挂载路径 镜像名
实例:
docker run --name t1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat▪创建共享容器
▪docker create --name webpage -v /webapps:/tomcat/webapps tomcat /bin/true
▪共享容器挂载点
▪docker run --volumes-from webpage --name t1 -d tomcat

10、Kubernetes的职责

▪自动化容器的部署和复制

▪随时扩展或收缩容器规模

▪容器分组Group,并且提供容器间的负载均衡

▪实时监控, 即时故障发现, 自动替换

10.1、基本概念

10.2、pod的概念

▪POD是”容器”的容器,可以包含多个”Container”

▪POD是K8S最小可部署单元,一个POD就是一个进程

▪POD内部容器网络互通,每个POD都有独立虚拟IP

▪POD都是部署完整的应用或模块

 ▪Pause容器是基于Docker的pause镜像实现的,它本身不包含任何业务逻辑,但为其他容器提供了网络、存储卷和其他资源的共享访问。Pause容器充当Pod中其他容器的父进程,帮助管理它们的生命周期。它还负责创建和配置Pod的网络命名空间,确保Pod内容器之间的网络通信

10.3、service

  • Service 主要用于提供网络服务,通过 Service 的定义,能够为客户端应用提供稳定的访问地址(域名或 IP 地址)和负载均衡功能,以及屏蔽后端 Endpoint 的变化,是 K8s 实现微服务的核心资源。

利用Rinetd(端口转发工具)实现service的负载均衡

▪Rinetd是Linux操作系统中为重定向传输控制协议工具

▪可将源IP端口数据转发至目标IP端口

▪在Kubernetes中用于将service服务对外暴露

10.4、文件集群共享(NFS)

▪NFS,是由SUN公司研制的文件传输协议

▪NFS主要是采用远程过程调用RPC机制实现文件传输

▪yum install -y nfs-utils rpcbind

10.5、kubeadm/kubelet/kubectl区别

▪kubeadm是kubernetes集群快速构建工具

▪kubelet运行在所有节点上,负责启动POD和容器,以系统服务形式出现

▪kubectl:kubectl是kubenetes命令行工具,提供指令

10.6、部署(Deployment)

▪部署是指Kubernetes向Node节点发送指令,创建容器的过程

▪Kubernetes支持yml格式的部署脚本

▪kubectl create -f 部署yml文件 #创建部署

部署yml样例

与部署相关命令

▪kubectl create -f 部署yml文件 #创建部署
▪kubectl apply -f 部署yml文件 #更新部署配置
▪kubectl get pod [-o wide] #查看已部署pod
▪kubectl describe pod pod名称 #查看Pod详细信息
▪kubectl logs [-f] pod名称 #查看pod输出日志
▪kubectl delete deployment|service #删除部署(Deployment)|服务(Service)资源限定
containers:- name: tomcat-clusterimage: tomcat:latestresources:requests:cpu: 1 memory: 500Milimits: cpu: 2memory: 1024Mi

10.7、pod自动扩缩容

手动模式:通过 kubectl scale 命令,这样需要每次去手工操作一次,而且不确定什么时候业务请求量就很大了,所以如果不能做到自动化的去扩缩容的话,这也是一个很麻烦的事情。

自动模式:
1、kubernetes HPA(Horizontal Pod Autoscaling):根据监控指标(cpu 使用率、磁盘、自定义的等)自动扩容或缩容服务中的pod数量,当业务需求增加时,系统将无缝地自动增加适量 pod 容器,提高系统稳定性。

2、kubernetes KPA(Knative Pod Autoscaler):基于请求数对 Pod 自动扩缩容,KPA 的主要限制在于它不支持基于 CPU 的自动扩缩容。

3、kubernetes VPA(Vertical Pod Autoscaler):基于 Pod 的资源使用情况自动设置 pod 的 CPU 和内存的 requests,从而让集群将 Pod 调度到有足够资源的最佳节点上。

各节点CPU、内存等资源的 metrics 信息可以通过 Metrics API 来获取,用户可以直接获取这些 metrics 信息(例如通过执行 kubect top 命令),HPA 使用这些 metics 信息来实现动态伸缩。

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

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

相关文章

普源示波器测量相位差的原理和方法

普源示波器是一种常用的电子测试设备&#xff0c;它可以测量电路中的电压和电流波形。其中&#xff0c;测量相位差是示波器的一个重要功能&#xff0c;它可以用于分析信号的时间延迟、相位差、频率响应等信息。本文将介绍普源示波器测量相位差的原理和方法&#xff0c;并通过实…

rmallox勒索病毒肆虐,如何保护网络安全?

rmallox勒索病毒与网络安全的关系可以从以下几个方面来阐述&#xff1a; 一、rmallox勒索病毒的特性 rmallox勒索病毒是一种极具破坏性的计算机病毒&#xff0c;它具有多个显著特性&#xff0c;这些特性使得该病毒对网络安全构成了严重威胁。具体来说&#xff0c;rmallox病毒具…

使用Three.js开发一个3D案例Demo

使用Three.js开发一个3D案例 最近在找工作&#xff0c;发现好多招聘要求都需要会Three.js&#xff0c;以前接触比较多的是2D开发&#xff0c;也就是平面开发&#xff0c;用到的做多的技术就是d3.js&#xff0c;现在3D开发已经成为了大势所趋&#xff0c;所以就学习下Three.js。…

物料厘不清?企业如何做好“物料管理”

物料包括原材料、半成品、成品、辅助用品以及生产过程中必然产生的边角余料、废料等。在制造企业中&#xff0c;各个部门的业务流程几乎都要用到物料&#xff1a; 销售和订单录入部门要通过物料确定客户定制产品的构形&#xff1b; 计划部门要根据物料来计划物料和能力的需求…

js遍历数组将数组中属性名相同的属性值组成新的数组再转化成字符串并换行(js换行和html换行不同)

{label: 告警结果,display:true, html:true,formatter:(row)>{let list ""if(row.funRes&&row.funRes.length){let propName value; list row.funRes.map(obj > {return <span style"vertical-align: text-top;padding-right: 2px;">…

使用Flink SQL实时入湖Hudi/Hive

文章目录 1 Hudi 简介2 COW和MOR3 接入COW模式Hudi表4 使用Flink SQL查看新接表5 使用Hive查看新接表6 总结 1 Hudi 简介 Hudi是一个流式数据湖平台&#xff0c;使用Hudi可以直接打通数据库与数据仓库&#xff0c;连通大数据平台&#xff0c;支持对数据增删改查。Hudi还支持同…

如何应对访问国外服务器缓慢的问题?SDWAN组网是性价比之选

访问国外服务器缓慢通常由以下原因造成&#xff1a; 1、政策限制&#xff1a;我国管理互联网&#xff0c;限制部分国外网站和服务器&#xff0c;以维护国家安全稳定。 2、技术障碍&#xff1a;国内与国际互联网的网络架构和协议存在差异&#xff0c;可能导致数据传输不兼容。 …

数据结构——图的基础知识与其表示

一&#xff1a;定义 由顶点的集合和边的集合组成&#xff1b;常以 G(V,E) 表示&#xff0c;G 代表图&#xff0c;V代表 顶点的集合&#xff0c;E代表边的集合&#xff1b; 如图&#xff1a; 在G1图中&#xff0c;有 0~4 五个顶点&#xff0c;有 0-1&#xff0c;0-2&…

V23 中的新功能:LEADTOOLS 展示了它的 EXCEL-lence

LEADTOOLS (Lead Technology)由Moe Daher and Rich Little创建于1990年&#xff0c;其总部设在北卡罗来纳州夏洛特。LEAD的建立是为了使Daher先生在数码图象与压缩技术领域的发明面向市场。在过去超过30年的发展历程中&#xff0c;LEAD以其在全世界主要国家中占有的市场领导地位…

苹果自研大语言模型“Ajax“ 助力iOS 18升级;Stack Overflow与OpenAI建立API合作伙伴关系

&#x1f989; AI新闻 &#x1f680; 苹果自研大语言模型"Ajax" 助力iOS 18升级 摘要&#xff1a;苹果公司预计通过自研大语言模型Ajax来为iOS 18和Siri带来重大升级&#xff0c;但不计划推出类似ChatGPT的AI聊天机器人。Ajax模型基于Google的Jax框架&#xff0c;并…

深度学习之基于YOLOv5目标检测可视化系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着深度学习技术的快速发展&#xff0c;目标检测在多个领域中的应用日益广泛&#xff0c;包括…

filezilla 上传文件到服务器

1. 下载windows ftp客户端 https://filezilla-project.org/index.php 点击左侧的 Download FileZilla Client All platforms 默认安装。 2. 双击打开 filezilla 按图中填写&#xff0c;并上传。 主机名: 10.20.89.* 用户名: zhuzh 密码: *** 端口: 22 点击 快速连接&#…

中电金信:金Gien乐道 | 4月要闻速览,精彩再回顾

中国电子党组副书记、总经理李立功一行调研中电金信 4月10日&#xff0c;中国电子党组副书记、总经理李立功一行赴中电金信进行调研&#xff0c;深入听取了中电金信经营发展情况、研发工作及“源启”行业数字底座平台的汇报&#xff0c;并参观了公司展厅和科技研发场所&#xf…

hadoop---基于Hive的数据仓库相关函数机制及其优化方案

Hive相关函数&#xff08;部分&#xff09;&#xff1a; if函数: 作用: 用于进行逻辑判断操作 语法: if(条件, true返回信息,false返回信息) 注意: if函数支持嵌套使用 select if(aa,’bbbb’,111) fromlxw_dual; bbbb select if(1<2,100,200) fromlxw_dual; 200nvl函数:…

Java中的maven的安装和配置

maven的作用 依赖管理 方便快捷的管理项目依赖的资源&#xff0c;避免版本冲突问题 统一项目管理 提供标准&#xff0c;统一的项目结构 项目构建 标准跨平台&#xff08;Linux、windows、MacOS&#xff09;的自动化项目构建方式 maven的安装和配置 在maven官网下载maven Ma…

SAP-ABAP-搜索帮助03

一、搜索帮助有两种&#xff1a; 1、外键/检查表&#xff1a;基于个表的&#xff0c;数据有效性检测。 2、SE11手工创建搜索帮助&#xff1a;基于数据元素的&#xff0c;纯帮助&#xff0c;无校验。 二、创建搜索帮助 1、外键/检查表 例如学员考勤表&#xff0c;包括学院的…

拯救者杯OPENAIGC开发者大赛城市巡回沙龙,苏州站报名开启!

由联想拯救者、AIGC开放社区、英特尔联合主办的“AI生成未来第二届拯救者杯OPENAIGC开发者大赛”自上线以来&#xff0c;吸引了广大开发者的热情参与。 为了向技术开发者、业务人员、高校学生、以及个体创业人员等参赛者们提供更充分的帮助与支持&#xff0c;AIGC开放社区特别…

Linux:进程通信(二)信号的保存

目录 一、信号的处理是否是立即处理的&#xff1f; 二、信号如何保存 1、阻塞、未决、递达 2、信号集 3、信号集操作函数 4、sigprocmask函数 5、sigpending 函数 上篇文章我们讲解了信号的产生&#xff1a;Linux&#xff1a;进程信号&#xff08;一&#xff09;信号的产…

ResponseHttp

文章目录 HTTP响应详解使用抓包查看响应报文协议内容 Response对象Response继承体系Response设置响应数据功能介绍Response请求重定向概述实现方式重定向特点 请求重定向和请求转发比较路径问题Response响应字符数据步骤实现 Response响应字节数据步骤实现 HTTP响应详解 使用抓…