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 xuxueli

ENV 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-cluster
        image: tomcat:latest
        resources:
          requests:
            cpu: 1 
            memory: 500Mi
          limits: 
            cpu: 2
            memory: 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 信息来实现动态伸缩。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码+视频,R语言绘制生存分析模型的时间依赖(相关)性roc曲线和时间依赖(相关)性cindex曲线

ROC曲线分析是用于评估一个因素预测能力的手段&#xff0c;是可以用于连续型变量分组的方法。在生存分析中&#xff0c;疾病状态和因素取值均会随时间发生变化。而标准的ROC曲线分析将个体的疾病状态和因素取值视作固定值&#xff0c;未将时间因素考虑在分析之中。在这种情况下…

edge使用心得

1. **性能提升**&#xff1a;基于Chromium的Edge浏览器在速度和响应方面有显著提升&#xff0c;特别是在处理复杂的网页结构和执行JavaScript代码时。这意味着无论是日常浏览还是运行Web应用程序&#xff0c;都能享受流畅的用户体验。 2. **更好的兼容性**&#xff1a;由于与G…

大模型最新消息

最新消息如下&#xff1a; 大语言模型服务的多样化&#xff1a;互联网上出现了许多免费的大语言模型服务&#xff0c;如OpenAI的ChatGPT、Google的Gemini、Anthropic的Claude、Meta的Llama等。这些服务的推出使得大语言模型的应用更加广泛和便捷。软银和苹果的AI新动向&#x…

​​【收录 Hello 算法】3.3 数字编码

目录 3.3 数字编码 3.3.1 原码、反码和补码 3.3.2 浮点数编码 3.3 数字编码 Tip 在本书中&#xff0c;标题带有 * 符号的是选读章节。如果你时间有限或感到理解困难&#xff0c;可以先跳过&#xff0c;等学完必读章节后再单独攻克。 3.3.1 原码、反码和补码 在…

迅睿CMS中实现关键词搜索高亮

在迅睿CMS系统中实现关键词搜索高亮是提升用户体验和搜索效果的重要手段。当用户搜索某个关键词时&#xff0c;将搜索结果中的关键词高亮显示&#xff0c;可以帮助用户更快速地定位到所需信息。 关键词高亮的实现 在迅睿CMS中&#xff0c;你可以使用内置的dr_keyword_highlig…

Study--Oracle-01-单实例部署Oracle11G-R2

Oracle版本发布介绍 Oracle 19c和12c和11g功能区别_数据库_oracle_支持 一、CentOS 7 环境准备 1、软件准备 操作系统&#xff1a;CentOS 7 数据库版本: Oracle11g R2 2、操作系统环境配置 关闭selinux &#xff0c;编辑 /etc/selinux/config文件&#xff0c;设置SELINU…

C语言例题34、反向输出字符串(递归方式)

题目要求&#xff1a;输入5个字符后&#xff0c;使用递归方式逆序输出 #include <stdio.h>void reverse(int num) {char cur_char;if (num 1) {cur_char getchar();printf("逆序输出为&#xff1a;");putchar(cur_char);} else {cur_char getchar();revers…

宏电全栈式IoT赋能供排水智能监测,护航城市生命线

城市供水、排水系统是维系城市正常运行、满足群众生产生活需要的重要基础设施&#xff0c;是城市的“生命线”。随着城市化进程加快&#xff0c;城市规模不断扩大&#xff0c;地下管线增长迅速&#xff0c;城市“生命线安全”的监管日益面临挑战。 宏电作为物联网行业的领航者…

软件测试与管理:黑盒测试-等价类划分法和 边界值分析法

知识思维导图&#xff1a; 例题1&#xff1a;日期检查功能的等价类划分 设有一个档案管理系统&#xff0c;要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月&#xff0c;并规定日期由6位数字字符组成&#xff0c;前4位表示年&#xff0c;后2位表示月。现用等…

后台启动HIVE的JDBC连接

后台启动HIVE的JDBC连接 生活就像一杯咖啡&#xff0c;有时苦涩&#xff0c;有时香甜&#xff0c;但都是值得品味的经历。无论遇到什么挑战&#xff0c;记住在每一天的开始&#xff0c;你都有机会给自己倒上一杯清新的力量&#xff0c;为心灵添一抹温暖。勇敢地面对生活的苦与甜…

10000 字详细讲解 Spring 中常用注解及其使用

如下图京东购物页面&#xff0c;当我们选择点击访问某一类商品时&#xff0c;就会向后端发起 HTTP 请求&#xff0c;当后端收到请求时&#xff0c;就会找到对应的代码逻辑对请求进行处理&#xff0c;那么&#xff0c;后端是如何来查找处理请求相对应的代码呢&#xff1f;答案就…

C++使用单链表实现一元多项式的加,乘操作

相邀再次喝酒 待 葡萄成熟透 但是命运入面 每个邂逅 一起走到了 某个路口 是敌与是友 各自也没有自由 位置变了 各有队友 首先&#xff0c;按照惯例&#xff0c;十分欢迎大家边听歌边观看本博客&#xff01;&#xff01; 最佳损友 - 陈奕迅 - 单曲 - 网易云音乐 (163.com) 一…

leetcode295. 数据流的中位数

class MedianFinder {//A为小根堆&#xff0c;B为大根堆List<Integer> A,B;public MedianFinder() {A new ArrayList<Integer>();B new ArrayList<Integer>();}public void addNum(int num) {int m A.size(),n B.size();if(m n){insert(B,num);int top …

开源模型 Prometheus 2 能够评估其他语言模型,其效果几乎与 GPT-4 相当

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

springboot使用研究

map-underscore-to-camel-case: true 开启驼峰命名 GetMapping("/userInfo")public Result<Users> userInfo(RequestHeader(name "Authorization") String token,HttpServletResponse response) {Map<String, Object> map JwtUtil.parseT…

Java | Spring框架|Bean的装配之注解配置

Spring | Bean的装配之 注解配置&#xff1a;简化配置的新标准 Spring框架的注解配置是近年来流行的配置方式&#xff0c;它通过在Java代码中使用注解来简化Bean的配置。这种方式减少了XML配置文件的使用&#xff0c;使得Bean的定义更加直观和简洁。 一、 使用注解定义Bean …

Problem 5: Whack-A-Mole打地鼠

实战题&#xff1a;打地鼠 内容如附件所示&#xff1a; 测试数据为:1,2,4,8,9,10,11,14 答案为&#xff1a;10,2,4 原始分布&#xff1a; 击打10号 击打2号 击打4号 要求&#xff0c;所示实例解以图示的方式给出&#xff0c;并且5组测试数据都需要测试&#xff0c;…

软件工程案例学习-图书管理系统-面向对象方法

文档编号&#xff1a;LMS_1 版 本 号&#xff1a;V1.0 ** ** ** ** ** ** 文档名称&#xff1a;需求分析规格说明书 项目名称&#xff1a;图书管理系统 项目负责人&#xff1a;计敏 胡杰 ** ** …

开式双比例泵控制放大器

比例泵PQ控制放大器的主要作用是通过接收来自控制器的信号&#xff0c;并将其转换为适当的电流信号&#xff0c;以驱动变量泵。这种控制方式可以实现对泵输出流量和压力的精确控制&#xff0c;从而实现节能和提高效率的目的。比例泵PQ控制放大器通常用于节能型泵控制系统中&…

【Linux系列】tail查询使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…