云原生架构
一、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控制台,供程序员使用文章来源:https://www.toymoban.com/news/detail-733111.html
kubeadm:管理k8s结点,可以更方便管理结点。可以通过kubeadm init指定一个节点为主节点。后面kubelet就会创建主节点的所需要的组件(下载镜像):scheduler(调度者、代理者、api-server、etcd等),其他节点就可以通过kubeadm join加入这个集群作为工作节点。文章来源地址https://www.toymoban.com/news/detail-733111.html
到了这里,关于云原生架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!