云原生学习

1、云原生学习

文章目录

1. 介绍

  1. 什么是云原生?原生指使用JAVA等语言编写的项目,云是指将项目部署到云服务器上
  2. 云平台公有云、私有云
    1. 本地平台是指直接部署在自己计算机,而开发的应用一定要部署在远程的服务器中供用户访问,从而必须使用云平台
    2. 云平台环境统一、按需收费、即开即用、稳定性强
    3. 公有云(公有资源,不一定是云服务器):由第三方云服务提供商拥有和运营,成本更低(无需硬件和软件)、无需维护(由厂家维护)、无限制缩放性(即开即用)、高可靠性(可用性),但会有安全风险![[attachments/Pasted image 20241112220921.png]]
    4. 私有云:自己搭建云平台或者购买![[attachments/Pasted image 20241112221300.png]]
    5. 没有一种云计算类型满足所有,多种不同的云计算模型、类型和服务都得到发展以满足不同的需求,可以采用公有云、私有云和混合云
  3. 阿里云服务器开通
    1. 先注册账号登录
    2. 选择云服务器按量付费进行购买
    3. 选择服务器的镜像(操作系统):CentOS7.9
    4. 如果要访问必须选择公网IP
    5. 然后系统配置中设置服务器登录密码
    6. 此时就创建成功,根据公网IP使用electerm软件(electerm.github.io/electerm)连接服务器,连接服务器的默认端口就是22
    7. 云资源就是使用不在本地的资源,比如公有云
  4. 云服务器的安全组
    1. 每个云服务器都有一个安全组:防火墙相关的端口设置 ,通过在安全组中设置服务器进入和出去的端口设置 ,可以添加一个安全组规则,配置某个端口的授权策略,授权对象为0.0.0.0/0时表示任何对象都可以访问该端口
    2. 只要在安全组中配置某个端口的安全组规则后才可以访问,否则该端口就无法访问
    3. 安全组相当于防火墙,对各个端口的访问权限进行配置
  5. 按量付费
    1. 当暂时不使用时,可以对服务器先进行停止 ,此时对于计算资源就不会收费了,但数据盘和公网IP还会继续收费,当需要时再进行启动
  6. 私有网络:VPC
    1. 每一个云服务器都有一个公网IP和一个私网IP,且在创建时可以选择使用VPC私有网络
    2. 公网IP让任何用户都可以外部远程访问,且公网IP可能会发生变化,私网IP是永远不会变的
    3. 公网IP是供外部连接进行访问的(流量会收费),且会发生变化 ;但是对于云服务器集群,内部使用私网IP进行访问 ,私网IP不会改变,且私网IP不会走流量,不会收费 ,且速度更快只有在同一个VPC下的服务器才可以通过私网IP通信,不同VPC不可以通过私网IP通信
    4. 对于自己的云服务集群,可以创建自己的VPC私有网络使得同一个集群的云服务器在同一个VPC中 ,此时就可以通过私网IP进行访问速度快且不收费
    5. 每个VPC创建时要指定网段在该VPC下的所有云服务器都会根据指定的网段分配一个私网IP
    6. 网段格式:xxx.xxx.xxx.xxx/掩码位 ,其中每一段都是8bit ,且掩码位表示指定位数是固定的改变后面的位数来为云服务器分配IP
    7. 因为VPC的网段可能过大 ,使用可以再继续划分子网创建交换机来实现 ,此时对VPC的网段进行子网划分不同交换机下的同一个VPC仍然是可以互通的 ,同一个VPC下的不同交换机是可以相互通信的,不同VPC下的服务器无法通过私网IP来访问
    8. 不同VPC之间是隔离 的,即使VPC的网段一致,其内的所有云服务器也无法进行互相通信每一个VPC专用网络都是一个局域网,不同VPC之间是不互通的,不同VPC下的服务器无法通过私网进行通信,即使网段相同也无法通信
    9. 当自己创建了一个VPC时,此时在创建云服务器时就可以指定该服务器的网络为自己设置的VPC,必须设置创建的服务器的网络为自己设置的VPC
    10. 只有在同一个VPC下的服务器才可以通过私网IP相互通信

2. Docker容器化

  1. 解决的问题
    1. 统一标准:应用构建(build镜像)、应用分享、应用运行(docker run)
    2. 资源隔离
  2. 架构
    1. ![[attachments/Pasted image 20241113122918.png]]
  3. 青云服务器安装
    1. 要配置Docker下载加速
  4. 基础命令实战
    1. 如果不加 -d 后台运行 ,则此时命令行会一直阻塞等待容器停止
    2. docker ps:只查看运行中的容器,ps只查看所有正在运行的容器
    3. docker ps -a查看所有未删除容器包括正在运行和未运行的容器
    4. docker stop 容器:停止运行的容器
    5. docker rm 容器:删除停止的容器,如果删除正在运行则加上 -f
    6. 当Docker停止时,容器也会停止 ,且Docker重启时,容器也不会重启
    7. 如果容器启动时不加 --restart always ,则此时当docker重启时,容器会停止
    8. docker update 容器 :可以修改一个正在运行容器的配置项 ,但不能修改端口映射
    9. -p 宿主机端口:容器端口,端口映射 就是将宿主机的端口与容器中端口进行映射,容器就是一个运行服务简易版的Linux系统(包含运行镜像的所有环境,有自己的网络配置以及端口等,使用宿主机的内核) ,此时就可以通过访问宿主机的端口来映射到容器中的服务 ,要避免映射的宿主机端口出现冲突
    10. docker exec -it 容器 /bin/bash :进入到指定的容器内并在命令行终端执行指定的命令 ,且以交互式终端的形式交互 ,且通过exec方式进入时exit不会停止容器中服务的运行,因为进入的是容器内Linux环境的命令行
    11. -v 绝对路径:容器路径 实现数据卷挂载 ,使用 --previledge=true来开启目录挂载权限 ,数据卷就是宿主机的一个目录,与指定的容器内目录映射,从而实现数据共享;数据卷更改实时更新 ,且不会打包进入镜像层可以实现共享数据,一直维持到没有挂载
    12. docker import 和 export 将容器数据流导入导出 ,或者使用 copy 将容器内文件拷贝
    13. docker commit 容器 镜像名:TAG对本地的容器提交为一个新的镜像存放在本地仓库中,可以通过 -a 添加作者描述,通过 -m 添加提交描述;容器提交的镜像会包含容器中所有的操作
    14. docker push 镜像 推送指定的镜像到远程仓库
    15. docker pull 镜像:TAG 从远程仓库中拉取镜像到本地仓库
    16. docker save -o 文件名.tar 镜像:将指定的镜像打包为一个tar压缩包,此时可以进行镜像传输
    17. docker load -i 镜像压缩包将镜像压缩包解压为镜像并存放到本地仓库中
    18. 一个仓库是指存放同一个服务不同版本的镜像 ,在将镜像推送到远程仓库时,必须使用docker tag 对镜像按照规范进行命名 ,且要先登录 docker login 后才可以推送镜像docker logout推送完镜像后退出登录
  5. 挂载数据卷
    1. 数据卷挂载时,宿主机下的目录会直接覆盖容器中的目录
相关推荐
java小吕布2 分钟前
Java集合框架之Collection集合遍历
java
一二小选手4 分钟前
【Java Web】分页查询
java·开发语言
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ16 分钟前
idea 弹窗 delete remote branch origin/develop-deploy
java·elasticsearch·intellij-idea
Code成立18 分钟前
《Java核心技术 卷I》用户图形界面鼠标事件
java·开发语言·计算机外设
不太灵光的程序员20 分钟前
【HBase分布式数据库】第七章 数据的导入导出 importtsv导入数据
数据库·分布式·hbase
Mephisto.java25 分钟前
【大数据学习 | HBASE高级】region split机制和策略
数据库·学习·hbase
鸽鸽程序猿43 分钟前
【算法】【优选算法】二分查找算法(下)
java·算法·二分查找算法
Bio Coder1 小时前
学习用 Javascript、HTML、CSS 以及 Node.js 开发一个 uTools 插件,学习计划及其周期
javascript·学习·html·开发·utools
Allen zhu1 小时前
【PowerHarmony】电鸿蒙学习记录-准备工作
学习·华为·harmonyos
遇见你真好。1 小时前
自定义注解进行数据脱敏
java·springboot