Docker

image-20220312161918939

image-20220312161936438

  • 容器化相比虚拟化

    • 同一标准

      • 应用无论什么语言同一构建成镜像

      • 镜像分享仓库

      • 容器化时代

        • 虚拟化技术
        • 容器化技术
    • 资源隔离

      • 资源隔离
      • 访问设备隔离
      • 网络隔离
      • 用户隔离
  • docker架构

    img

    image.png

  • 操作

  • 镜像操作

    • docker hub仓库
  • 容器操作

    • 外部操作

    • 内部操作

      • 看镜像仓库官网
  • 打包镜像变化

    • docker commit
  • 镜像保存

    • docker save
    • 保存为压缩包文件
  • 镜像加载

    • docker load
    • 读取压缩包为镜像
  • 镜像推送

    • login:登录仓库
    • tag:改名,带上自己的仓库名
    • push:推送镜像
  • 挂载

    • 保证外部有配置文件
    • 提前cp出来文件
  • 其他命令

    • docker logs 容器

      • 容器日志
    • docker cp

      • 容器复制到本地
      • 本地复制到容器
  • 构建应用

  • 以前

    • springboot打包
    • jar包上传服务器(环境)
    • 运行jar包
  • 现在

    • 打包镜像,启动即用

    • 编写docker file(如何打包)

      • from:基础镜像

        • 运行环境
      • label:作者

      • copy:把jar包复制到容器中位置

      • entrypoint:启动命令

        • java -jar xx

        image-20220312162555498

    • 上传到linux运行打包

      • docker file + jar包
      • docker build
        • tag:镜像名
        • 当前目录工作
    • 启动容器应用

    • docker logs xx 查看日志

  • 应用分享与启动

    • tag
    • push
    • pull

k8s

  • 组织架构

    image.png

    image-20220312163709410

  • k8s集群部署

    • 三个服务器
    • 安装docker容器环境
    • k8s
      • kubelet、kubeadm、kubectl
    • kubeadm启动集群
      • master
      • worker
      • dashboard页面
  • 核心实战

    • namespace

      • 隔离资源

      image-20220312163739852

    • pod

      • 一组容器

        image-20220312163750025

      • 创建pod

        • 命令行
        • 配置文件
          • apply -f
    • pod网络ip

      • 集群内公共访问
    • 多容器pod

      • 共享pod网络
      • 端口不同即可部署多个相同应用
    • deployment部署

      • 控制pod

        • 自愈
        • 多副本
      • 扩缩容

        image-20220312163803222

      • 自愈&故障转移

      • 阈值设置

      • 滚动更新

        • set新镜像自动滚动更新
        • 不停机更新

        image-20220312163809935

      • 版本回退

        • rollout
          • history
            • 查看历史部署
          • undo
            • 回退
      • 工作负载:控制pod

        • 有状态、无状态
        • 守护进程
        • 任务等

        image-20220312163840752

        image-20220312163820457

  • 服务网格

    • service

      • 暴露:将一组pod公开为网络服务
      • 自带负载均衡
      • 集群内ip、域名访问
      • 服务暴露
        • clusterIP
          • 只能集群内访问
        • NodePort
          • 集群外也可以访问(每个节点)
          • 随机分配端口(3万以上)
          • nodeport——targetport——containerport
    • ingress

      image-20220312163902230

      image-20220312163909266

      • 集群统一网关入口

      • ingress网络模型

        • 底层nginx
        • ingress接收请求转发到不同service
          • 每个模块服务抽取为service
            • service层网络
      • 路径重写

      • 限流

    • 网络模型总结

      • pod层,组合容器
      • service层,负载均衡pod
      • ingress层,路由service

      image-20220312163919837

  • 存储抽象

    • 数据挂载层同一管理为存储层

      • 多种存储框架

        • NFS

          • client节点同步server节点数据

            image-20220312163928292

      • 搭建NFS环境

      • deploy数据卷挂载

        • 原生方式

          • 创建文件夹
          • 配置deploy文件
        • PV与PVC

          • PV持久卷:指定保存位置

          • PVC持久卷规格声明:容量等

            image-20220312163942434

          • pvc配置文件

      • configmap抽取配置

        • configmap便于镜像和配置文件的解耦

        • 编写配置文件,创建为配置集

          • 保存在etcd
        • 启动pod,配置文件挂载configmap

          image-20220312163949059

      • secret秘钥令牌

        • 创建serect

          image-20220312163958664

        • base64编码

          • docker仓库第三方需解密
          • 可破解
  • 小结

    • deployment
    • 其他工作负载
    • pod
    • service
    • ingress
    • pvc
    • configmap
    • serect

kubeSphere

  • kubesphere

    • 简介

      • 可视化界面
      • 多租户
      • 多k8s集群管理
      • CI/CD
      • 微服务治理:服务网格
      • 应用管理
    • 安装

      • k8s安装

        • 默认存储类型nfs
        • metrics-server
        • 全功能安装
      • linux安装

        • 单节点一键安装

          • kubekey
        • 多节点安装

          • kubekey

          image-20220312164547433

    • 多租户管理

    • 中间件部署

      • 手动部署

        • 依据docker hub文档
        • configmap
        • pvc
        • 部署工作负载
          • 镜像、资源、端口
          • 环境变量、配置、挂载文件
        • 部署服务
          • 暴露
            • 集群内部通过域名访问(自动)
            • 集群外部
              • 指定工作负载,集群外访问

        image-20220312164602153

      • 直接部署应用(从应用商店)

        • 要自己打开clusterConfiguration
      • 应用仓库

        • helm-k8s包管理仓库
        • 添加应用仓库
    • 应用部署cloud

      • 数据层

      • 微服务治理层

      • 微服务层

        image-20220312164622245

        • 制作镜像
          • docker file
          • maven打包
        • 推送镜像
          • 阿里云镜像仓库
          • 应用部署
      • 前端层

        • 基础镜像nginx

          image-20220312164642652

        • 构建镜像

        • 部署

        image-20220312164652308

      • 存活检查:探针

    • devops

      • 敏捷开发

      • 全链路自动化

      • cloud应用上云

        • 中间件层

          • 手动构建服务

          image-20220312164744707

        • 微服务层

          • 生产环境配置抽取
          • nacos配置中心
            • 域名地址配置中间件
        • 流水线

          • 流水线模板

            image-20220312164758372

          • 第一步-拉取代码

          • 第二步-项目编译

            • 配置maven阿里云镜像
              • 修改ks-devops-agent配置
          • 第三步-构建镜像

            • 基础操作

            • 并发构建

              image-20220312164807965

          • 第四步-推送镜像

            • 基础操作

              • 镜像仓库凭证
            • 并发推送

              image-20220312164813947

          • 第五步-部署到dev环境

            • 微服务准备deploy.yaml部署文件

            • 镜像凭证

              • 阿里云仓库密钥
            • 并行部署

              image-20220312164820639

            • 就绪探针

          • 第六步-系统邮件

        • 前端项目

          • 流水线

            • 基础环境nodejs
            • 拉取代码
            • 项目安装依赖、编译
            • 构建镜像
              • docker file
          • 推送镜像

          • 部署到dev环境

            • deploy.yaml
          • 发送确认邮件

        • 部署nust-site前端项目

          • 基于nust服务端渲染

          • 打包镜像

            image-20220312164832626

          • 可以请求一切走集群内网(服务端渲染)

        • webhook自动启动流水线

          image-20220312164847450

          • 写完代码提交

          • 给指定地方发请求

          • 流水线自动运行

          • 创建webhook:gitee配置

kubekey、devops深入、应用管理、服务网格istio、k8s可观测性、kubevirt

  • kubekey运维高可用集群

    • Kubekey介绍

      • kubeadm、kops、kubespray方式
        • 容器环境、管理证书
        • apiserver负载均衡器
        • etcd等
      • kubekey方式
        • 部署k8s、k3s
    • 部署高可用k8s集群

      image-20220312165738542

      • 外部负载均衡

      • 内部负载均衡

      • kubekey部署高可用集群

    • kubekey集群配置文件

      • hosts:ip、user
    • k8s增删集群节点

    • 集群证书管理

    • kubesphere启用可插拔组件

    • 节点管理

  • devops深入

    • devops元素周期表

      image-20220312165317185

    • devops流程

    • devops生命周期

      image-20220312165751201

      image-20220312165800148

    • devops流水线

    • 质量扫描&单元测试&制品管理

    • 自动部署构建

    • devops自动部署

    • source to images 发布应用

      • 无需dockerfile
      • 通过github代码地址
    • binary to image发布应用

      • 通过jar包
    • Jenkinsfile部署流水线

  • kubesphere备份与恢复

    • 多节点模式
    • master节点启停
    • woker节点启停
    • 集群启停
  • 云原生应用管理

    • 调试应用
    • 应用调度
    • helm
      • helm及应用仓库
      • 开发helm
      • k8s应用声明周期
      • 应用仓库管理
      • 应用管理场景
  • kubernetes federation

  • 服务网格架构

    • 微服务

      image-20220312165816353

      • 微服务框架挑战

        image-20220312165824002

        • 过于绑定技术栈
        • 多语言受限
        • 代码侵入度过高
    • 架构

      image-20220312165831921

      • side car

      • 服务网格

        image-20220312165836512

        • 一组轻量级网络代理实现
    • istio

      • 架构

        image-20220312165844680

      • 安装部署

      • 测试项目部署

      • isito核心概念

        • 虚拟服务
        • 目标规则
      • kubesphere启用服务治理

        • 启用istio

        • 创建服务

        • 服务治理

          • 链路追踪

          • 流量监控

          • 灰度发布

            • 金丝雀发布

              • 流量手动分配
            • 达到足够上线条件

              • 接管
  • k8s可观测性

    • 日志系统
    • 日志安装
      • kubesphere可插拔式安装
      • cluster configuration
        • logging
          • 集合fluent bit
  • 日志查看

    • 容器日志查询

    • 日志检索与落盘日志收集

      • 开启日志收集
      • 创建工作负载
        • alpine镜像
          • 启动命令
        • 挂载pvc
    • 常见问题

      • 存储外部es,关闭内部es
      • 日志保留日期
  • 监控与预警

    • Prometheus

      • 安装node explorer

      • promQL

      • 告警处理

        • 告警规则
      • operator

        • 控制中心
    • kubesphere监控

      • 基于Prometheus
    • 费率统计

  • kubevirt虚拟机管理

    • 虚拟化技术

      image-20220312165923874

    • kubevirt

    • KSV平台

  • CKA、CKS

image-20220312170342258