云原生架构

2023-09-17 21:16:55

云原生架构

一、Docker

1.1镜像仓库

docker hub

1.2镜像操作

下载:docker pull 镜像(nginx、redis)

直接下载是该工具的最新版本,可以指定通过镜像名:版本来指定版本。

删除:docker rmi 镜像名:版本号(默认lastest)/镜像id

1.3容器操作
1.3.1运行镜像:

docker run [options] images [command]

  • docker run 设置项 镜像名 启动命令(默认有,一般不配置)
    • –name=xxx 执行启动后的容器名
    • -d 后台运行
    • -p 公网端口:容器内端口
    • -v 外部:内部文件 挂载容器内部到文件到外部linux系统中
    • –restart=always 每次开机会自启
1.3.2操作容器

如果第一次没有指定,可以通过docker update 容器id --restart = always来更新设置项。

但是docker update 不能修改容器的端口。

  • docker ps 查看运行中的容器

  • docker rm 容器名/容器id 可以使用-f强制删除运行中的容器

  • docker stop 容器id 停止运行中的容器

  • docker start 容器id

1.3.3操作容器内部文件

docker exec -it 容器id /bin/bash(控制台) -it以交互模式进行操作

进入到容器里面(小nginx),修改容器文件

1.3.4提交容器改变

本地:docker commit -a “作者” -m “描述提交的内容” 容器id 新镜像名.

远程:将一个镜像从一个电脑导入到另一台电脑:

1.docker save -o xxx.tar 镜像名:版本 将镜像压缩成压缩包(可以使用load -i命令解压缩包为镜像)

如果直接使用镜像id打包会出现解压后镜像名为none,可以使用 docker tag 镜像id xxx:版本

scp xxx.tar root@192.168.xxx.xx 将压缩包发送到某个主机

2.将镜像推送到远程仓库

  • 注册docker hub创建repository
  • docker tag localimage:localtag new-repo:tagname
  • docker push new-repo:tagname
  • 推动之前需要先登录docker login
  • 推送完成后,其他机器只需要docker pull即可
1.3.5如何使用docker部署一个Java项目

1.安装相关镜像(redis)

2.打包java项目为jar包

3.编写Dockerfile文件将我们的Java项目打包成镜像 (docker build -t xxxdemo:vxx .)

4.docker run 运行java项目镜像

二、Kubernates

在这里插入图片描述

容器之间的环境是隔离的,不会影响到其他容器的运行,解决了虚拟机的笨重。但是容器使用起来不好管理,所以K8S用来对容器进行管理、编排。

K8s是一个可弹性运行分布式系统的框架,优点:

  • 服务的发现和负载均衡
  • 内存编排,应用内存的分配回收。
  • 自动部署和回滚功能
  • 自动装箱计算,允许指定每一个容器所需的内存和CPU
  • 自我修复(一个应用在一个机器挂了,会自动部署到其他机器)
  • 配置管理
2.1架构
2.1.1工作方式

N 个主节点 + N节点
在这里插入图片描述
在这里插入图片描述
所有工作节点与主节点通信都需要经过api-service,外部访问工作节点需要经过kube-proxy访问。kubelet会实时监测节点内的容器活动状态,如果发现问题会及时通过api-server通知决策者。对于节点的数据都存在ETCD中(类似Redis)。

2.2集群部署

kubelet:节点管理者。

kubectl:k8s控制台,供程序员使用

kubeadm:管理k8s结点,可以更方便管理结点。可以通过kubeadm init指定一个节点为主节点。后面kubelet就会创建主节点的所需要的组件(下载镜像):scheduler(调度者、代理者、api-server、etcd等),其他节点就可以通过kubeadm join加入这个集群作为工作节点。

更多推荐

基于深度学习的加密恶意流量检测

加密恶意流量检测研究目标定位数据收集数据处理基于特征分类算法的数据预处理基于源数据分类算法的数据预处理特征提取模型选择基于数据特征的深度学习检测算法基于特征自学习的深度学习检测算法训练和评估精确性指标实时性指标应用检验改进摘录自:MingfangZHAI,XingmingZHANG,BoZHAO.Surveyofenc

应用在苹果应用商店该如何进行优化

众所周知,ASO最大化的提高应用程序在商店中的可见性,其目标是获得更多的下载量,同时它也与下载的转化率有关。1、根据应用阶段追求不同的目标。它可以是有机增长或转化率的提高,获得更多安装并降低用户获取成本,增加收入或提高保留率,达到一定的参与水平或提高每日或每月活跃用户。2、应用的文本字段。应用名称需要包含一些主要关键词

PAT 1035 插入与归并

PAT1035插入与归并题目描述思路讲解代码展示题目描述思路讲解分析:先将i指向中间序列中满足从左到右是从小到大顺序的最后一个下标,再将j指向从i+1开始,第一个不满足a[j]==b[j]的下标,如果j顺利到达了下标n,说明是插入排序,再下一次的序列是sort(a,a+i+2);否则说明是归并排序。归并排序就别考虑中间

xen-timer

目的主要了解一下armtimerspec和xen项目中timer是怎么使用,如何实现的。同时也是对学习过程的一些记录。学习链接文章链接时间子系统http://www.wowotech.net/sort/timer_subsystemarmtimerspechttps://developer.arm.com/docume

阿里云服务器上CentOS 7.6使用rpm包安装MySQL 8.0.31

我这里下载的是最新版本,需要到MySQL官网最新版本下载地址。要是想要下载以前的版本需要到MySQL以前版本网址中。1)先使用wgethttps://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar(这个网址现在已经不

降低半导体金属线电阻的沉积和蚀刻技术

铜的电阻率取决于其晶体结构、空隙体积、晶界和材料界面失配,这在较小的尺度上变得更加重要。传统上,铜(Cu)线的形成是通过使用沟槽蚀刻工艺在低k二氧化硅中蚀刻沟槽图案,然后通过镶嵌流用Cu填充沟槽来完成的。不幸的是,这种方法产生具有显着晶界和空隙的多晶结构,这增加了铜线电阻。该工艺中还使用了高电阻TaN衬垫材料,以防止镶

直播视频处理过程

视频其实就是快速播放一连串连续的图片。每一张图片,我们称为一帧。只要每秒钟帧的数据足够多,也即播放得足够快。比如每秒30帧,以人的眼睛的敏感程度,是看不出这是一张张独立的图片的,这就是我们常说的帧率(FPS)。每一张图片,都是由像素组成的,假设为1024*768(这个像素数不算多)。每个像素由RGB组成,每个8位,共2

离散制造企业如何打造MES管理系统

在当今制造业中,MES生产管理系统越来越受到关注,但在实际应用中也遇到了一些问题。本文分析了离散制造业和流程生产行业的MES应用现状,指出了这两个行业在部署MES管理系统时存在差异的原因,并探讨了如何在离散制造业提升生产效率,降低维护和培训成本。MES系统通过信息的传递对从生产命令下发到产品完成的整个生产过程进行优化管

智能网联驾驶测试与评价工业和信息化部重点实验室“车载智能计算基础平台参考架构2.0专家研讨会”圆满结束

近日,智能网联驾驶测试与评价工业和信息化部重点实验室在北京市召开“车载智能计算基础平台参考架构2.0专家研讨会”,本次会议由智能网联驾驶测试与评价工业和信息化部重点实验室、中国软件评测中心(工业和信息化部软件与集成电路促进中心)、国家智能网联汽车创新中心主办,北京经纬恒润科技股份有限公司承办。会议主要包括两个环节,一是

redis 事务

1.什么是Redis事务提到事务,我们可能马上会想到传统的关系型数据库中的事务,客户端首先向服务器发送BEGIN开启事务,然后执行读写操作,最后用户发送COMMIT或者ROLLBACK来提交或者回滚之前的操作。但是Redis中的事务与关系型数据库是不一样的,Redis通过MULTI命令开始,之后输入一连串的操作,最终以

LeetCode 363 期周赛

2859.计算K置位下标对应元素的和题目给你一个下标从0开始的整数数组nums和一个整数k。请你用整数形式返回nums中的特定元素之和,这些特定元素满足:其对应下标的二进制表示中恰存在k个置位。整数的二进制表示中的1就是这个整数的置位。例如,21的二进制表示为10101,其中有3个置位。示例1:输入:nums=[5,1

热文推荐