K8s+Docker+KubeSphere+DevOps

云原生实战笔记

  • 云平台核心
    • 1. 为什么用云平台
      • 1.1 公有云
      • 1.2 私有云
    • 2. 核心构架
      • 2.1 所需软件
      • 2.2 基础概念
  • Docker基本概念
    • 1. 解决的问题
      • 1.1 统一标准
      • 1.2 资源隔离
    • 2. 架构
    • 3. 安装
      • 3.1 centos下安装docker
      • 3.2 移除以前docker相关包
      • 3.3 配置yum源
      • 3.4 安装docker
      • 3.5 启动
  • Docker命令实战
    • 1.常用命令
    • 2. 基础实战
      • 2.1 查找镜像
      • 2.2 启动容器
    • 3. 修改容器中nginx内容
      • 3.1 进容器内部修改
      • 3.2 挂载数据到外部修改
    • 4. 提交修改的镜像
    • 5. 镜像传输

哔哩哔哩视频地址: https://www.bilibili.com/video/BV13Q4y1C7hS?p=10

云平台核心

1. 为什么用云平台

  • 环境统一
  • 按需付费
  • 即开即用
  • 稳定性强

国内常见云平台:

  • 阿里云、百度云、腾讯云、华为云、青云…

国外常见云平台:

  • 亚马逊 AWS、微软 Azure …

1.1 公有云

购买云服务商提供的公共服务器

  • 公有云是最常见的云计算部署类型。公有云资源(例如服务器和存储空间)由第三方云服务提供商拥有和运营,这些资源通过 Internet 提供。在公有云中,所有硬件、软件和其他支持性基础结构均为云提供商所拥有和管理。Microsoft Azure 是公有云的一个示例。
  • 在公有云中,你与其他组织或云“租户”共享相同的硬件、存储和网络设备,并且你可以使用 Web 浏览器访问服务和管理帐户。公有云部署通常用于提供基于 Web 的电子邮件、网上办公应用、存储以及测试和开发环境。
    公有云优势:
  • 成本更低:无需购买硬件或软件,仅对使用的服务付费。
  • 无需维护:维护由服务提供商提供。
  • 近乎无限制的缩放性:提供按需资源,可满足业务需求。
  • 高可靠性:具备众多服务器,确保免受故障影响。
    • 可用性: N个9 9 全年的故障时间: 365243600*(1-99.9999%)

1.2 私有云

  • 自己搭建云平台,或者购买
  • 私有云由专供一个企业或组织使用的云计算资源构成。私有云可在物理上位于组织的现场数据中心,也可由第三方服务提供商托管。但是,在私有云中,服务和基础结构始终在私有网络上进行维护,硬件和软件专供组织使用。
  • 这样,私有云可使组织更加方便地自定义资源,从而满足特定的 IT 需求。私有云的使用对象通常为政府机构、金融机构以及其他具备业务关键性运营且希望对环境拥有更大控制权的中型到大型组织。
    私有云优势:
    • 灵活性更强:组织可自定义云环境以满足特定业务需求。
    • 控制力更强:资源不与其他组织共享,因此能获得更高的控制力以及更高的隐私级别。
    • 可伸缩性更强:与本地基础结构相比,私有云通常具有更强的可伸缩性。
  • 没有一种云计算类型适用于所有人。多种不同的云计算模型、类型和服务已得到发展,可以满足组织快速变化的技术需求。
  • 部署云计算资源有三种不同的方法:公共云、私有云和混合云。采用的部署方法取决于业务需求

2. 核心构架

2.1 所需软件

electerm: https://electerm.github.io/electerm/
https://wwa.lanzoui.com/b016k9bha
密码:900h

注册云平台:

  • 阿里云 aliyun.com
  • 腾讯云 cloud.tencent.com
  • 华为云 cloud.huawei.com
  • 青云 qingcloud.com
  • 百度云 cloud.baidu.com

2.2 基础概念

  • 云服务器作为应用的最终载体
  • VPC为所有云服务器提供网络隔离
  • 所有云服务器都是绑定某个私有网络
  • 安全组控制每个服务器的防火墙规则
  • 公网IP使得资源可访问
  • 端口转发的方式访问到具体服务器

Docker基本概念

1. 解决的问题

1.1 统一标准

  • 应用构建
    • Java、C++、JavaScript
    • 打成软件包
    • .exe
    • docker build … 镜像
  • 应用分享
    • 所有软件的镜像放到一个指定地方 docker hub
    • 安卓,应用市场
  • 应用运行
    • 统一标准的 镜像
    • docker run

1.2 资源隔离

  • cpu、memory资源隔离与限制
  • 访问设备隔离与限制
  • 网络隔离与限制
  • 用户、用户组隔离限制

2. 架构

K8s+Docker+KubeSphere+DevOps_第1张图片

  • Docker_Host:
    • 安装Docker的主机
  • Docker Daemon:
    • 运行在Docker主机上的Docker后台进程
  • Client:
    • 操作Docker主机的客户端(命令行、UI等)
  • Registry:
    • 镜像仓库
    • Docker Hub
  • Images:
    • 镜像,带环境打包好的程序,可以直接启动运行
  • Containers:
    • 容器,由镜像启动起来正在运行中的程序

交互逻辑

  • 装好Docker,然后去 软件市场 寻找镜像,下载并运行,查看容器状态日志等排错

3. 安装

3.1 centos下安装docker

  • 其他系统参照如下文档
    https://docs.docker.com/engine/install/centos/

3.2 移除以前docker相关包

sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

3.3 配置yum源

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.4 安装docker

sudo yum install -y docker-ce docker-ce-cli containerd.io
#以下是在安装k8s的时候使用
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7  containerd.io-1.4.6

3.5 启动

systemctl enable docker --now

3.6 配置加速

这里额外添加了docker的生产环境核心配置cgroup

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
重点关注:["https://82m9ar63.mirror.aliyuncs.com"],可以登录自己的阿里云替换加速地址

Docker命令实战

1.常用命令

K8s+Docker+KubeSphere+DevOps_第2张图片

2. 基础实战

2.1 查找镜像

Docker Hub官网镜像地址: https://hub.docker.com/

	docker pull nginx  #下载最新版
	语法: 镜像名:版本号(标签)
	docker pull nginx:1.20.1 #下载1.29.1版本的nginx
	docker pull redis  #下载最新
	docker pull redis:latest #下载最新
	docker pull redis:6.2.4 #下载6.2.4版本的redis
	不指定latest时,默认下载的是最新的
	docker rmi 镜像名:版本号/镜像id  #删除镜像

2.2 启动容器

  • 启动nginx应用容器,并映射88端口,测试的访问
	docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    语法:【docker run  设置项   镜像名  】 镜像启动运行的命令(镜像里面默认有的,一般不会写)
    # -d:后台运行
	# --restart=always: 开机自启
	docker run --name=mynginx   -d  --restart=always -p  88:80   nginx
	
	# 查看正在运行的容器
	docker ps
	# 查看所有
	docker ps -a
	# 删除停止的容器
	docker rm  容器id/名字
	docker rm -f mynginx   #强制删除正在运行中的
	
	#停止容器
	docker stop 容器id/名字
	#再次启动
	docker start 容器id/名字
	
	#应用开机自启
	docker update 容器id/名字 --restart=always

3. 修改容器中nginx内容

  • 修改nginx的默认index.html页面

3.1 进容器内部修改

	# 进入容器内部的系统,修改容器内容
	docker exec -it 容器id  /bin/bash
	# -it: 交互模式
	# /bin/bash 进入容器内部控制台,相当于一台小型linux系统,也可以使用/bin/sh
	exit #进入容器后,退出容器

3.2 挂载数据到外部修改

	docker run --name=mynginx   \
	-d  --restart=always \
	-p  88:80 -v /data/html:/usr/share/nginx/html:ro  \
	nginx
	
	# 修改页面只需要去 主机的 /data/html

4. 提交修改的镜像

将自己修改好的镜像提交

K8s+Docker+KubeSphere+DevOps_第3张图片

	docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
	docker commit -a "chentengfei"  -m "首页变化" 341d81f7504f guignginx:v1.0

5. 镜像传输

第一种方式: 物理传输

	# 将镜像保存成压缩包
	docker save -o abc.tar guignginx:v1.0
	# 通过copy或者其他方式传输到另一台安装了docker的机器
	# 别的机器加载这个镜像
	docker load -i abc.tar
# 离线安装

第二种方式: 推送到远程仓库

我的gitee地址: https://gitee.com/ctflq
喜欢请点赞关注吆,持续更新中…

你可能感兴趣的:(CICD,docker,devops,云计算)