TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网产品结构k8s入门到微服务项目实战思维导图

k8s入门到微服务项目实战思维导图

  收藏
  分享
免费下载
免费使用文件
U744450452 浏览量:142023-09-06 10:39:00
已被使用1次
查看详情k8s入门到微服务项目实战思维导图

系统入门与实际应用全内容详解

树图思维导图提供 k8s入门到微服务项目实战 在线思维导图免费制作,点击“编辑”按钮,可对 k8s入门到微服务项目实战  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:2913dc20c0f4ad39154eed5670e04be4

思维导图大纲

k8s 入门到微服务项目实战思维导图模板大纲

I. 课程简介

背景介绍

市场需求

技术竞争力

行业发展方向

讲师简介

姓名:刘刚

工作年限:7年

工作经历:

叩丁狼高级讲师

曾任技术部门负责人

深圳知名物联网公司 Team Leader

熟悉技术领域:微服务、物联网、云原生等

授课风格:持续高能技术点输出、

课程解读

面向人群

运维工程师

Java 开发

架构师

技术经理

前置学习

必须

Linux 基础命令

Docker

可选

Java 微服务开发

Redis

Elasticsearch

Prometheus

Jenkins

模块解读

课程目标

深入理解 k8s 各大资源对象以及最佳实践

熟练运用 k8s 各项调度策略

掌握 k8s 网络原理及应用

熟练掌握 pod 控制器及运用场景

熟练掌握 k8s 微服务 DevOps 实战

II. 核心概念篇

认识 Kubernetes

什么是 Kubernetes?

为什么需要 Kubernetes?

应用部署的三大阶段

传统部署

虚拟化部署

容器化部署

k8s 的特点

自我修复

弹性伸缩

自动部署和回滚

服务发现和负载均衡

机密和配置管理

存储编排

批处理

企业级容器调度平台

Apache Mesos

基本概念

优势

Docker Swarm

基本概念

优势

Google Kubernetes

基本概念

优势

集群架构与组件

相关组件

控制面板组件(Master)

kube-apiserver

kube-controller-manager

cloud-controller-manager

kube-scheduler

etcd

节点组件

kubelet

kube-proxy

container runtime

附加组件

kube-dns

Ingress Controller

Prometheus

Dashboard

Federation

Fluentd-elasticsearch

分层架构

生态系统

接口层

管理层

应用层

核心层

核心概念与专业术语

服务的分类

无状态

代表应用

Nginx

Apache

优点:对客户端透明,无依赖关系,可以高效实现扩容、迁移

缺点:不能存储数据,需要额外的数据服务支撑

有状态

代表应用

MySQL

Redis

优点:可以独立存储数据,实现数据管理

缺点:集群环境下需要实现主从、数据同步、备份、水平扩容复杂

资源和对象

资源的分类

元数据型

Horizontal Pod Autoscaler(HPA)

PodTemplate

LimitRange

集群级

Namespace

Node

ClusterRole

ClusterRoleBinding

命名空间级

工作负载型

Pod

副本(replicas)

控制器

适用无状态服务

ReplicationController(RC)

ReplicaSet(RS)

Label 和 Selector

Deployment

创建 Replica Set / Pod

滚动升级/回滚

平滑扩容和缩容

暂停与恢复 Deployment

适用有状态服务

StatefulSet

主要特点

稳定的持久化存储

稳定的网络标志

有序部署,有序扩展

有序收缩,有序删除

组成

Headless Service

volumeClaimTemplate

注意事项

kubernetes v1.5 版本以上才支持

所有Pod的Volume必须使用PersistentVolume或者是管理员事先创建好

为了保证数据安全,删除StatefulSet时不会删除Volume

StatefulSet 需要一个 Headless Service 来定义 DNS domain,需要在 StatefulSet 之前创建好

守护进程

DaemonSet

任务/定时任务

Job

CronJob

服务发现

Service

Ingress

存储

Volume

CSI

特殊类型配置

ConfigMap

Secret

DownwardAPI

其他

Role

RoleBinding

资源清单

对象规约和状态

规约(Spec)

状态(Status)

微服务项目 k8s 环境演示

III. 深入 k8s 实战进阶篇

搭建 Kubernetes 集群

搭建方案

minikube

kubeadm

服务器要求

3 台服务器(虚拟机)

k8s-master:192.168.113.120

k8s-node1:192.168.113.121

k8s-node2:192.168.113.122

最低配置:2核、2G内存、20G硬盘

最好能联网,不能联网的话需要有提供对应镜像的私有仓库

软件环境

操作系统:CentOS 7

Docker:20+

k8s:1.23.6

安装步骤

1. 初始操作

2. 安装基础软件(所有节点)

2.1 安装 Docker

2.2 添加阿里云 yum 源

2.3 安装 kubeadm、kubelet、kubectl

3. 部署 Kubernetes Master

4. 加入 Kubernetes Node

5. 部署 CNI 网络插件

7. 测试 kubernetes 集群

二进制安装

命令行工具

命令行工具 kubectl

在任意节点使用 kubectl

资源操作

创建对象

显示和查找资源

更新资源

修补资源

编辑资源

scale 资源

删除资源

Pod 与集群

与运行的 Pod 交互

与节点和集群交互

资源类型与别名

pods

po

deployments

deploy

services

svc

namespace

ns

nodes

no

格式化输出

输出 json 格式

-o json

仅打印资源名称

-o name

以纯文本格式输出所有信息

-o wide

输出 yaml 格式

-o yaml

API 概述

类型

Alpha

Beta

Stable

访问控制

认证

授权

废弃 api 说明

深入 pod

Pod 配置文件

探针

类型

StartupProbe

LivenessProbe

ReadinessProbe

探测方式

ExecAction

TCPSocketAction

HTTPGetAction

参数配置

生命周期

Pod 退出流程

删除操作

Endpoint 删除 pod 的 ip 地址

Pod 变成 Terminating 状态

执行 preStop 的指令

PreStop 的应用

注册中心下线

数据清理

数据销毁

资源调度

Label 和 Selector

标签(Label)

配置文件

kubectl

临时创建 label

修改已经存在的标签

查看 label

选择器(Selector)

配置文件

kubectl

Deployment

功能

创建

滚动更新

多个滚动更新并行

回滚

扩容缩容

暂停与恢复

配置文件

StatefulSet

功能

创建

扩容缩容

镜像更新

RollingUpdate

灰度发布

OnDelete

删除

删除 pvc

配置文件

DaemonSet

配置文件

指定 Node 节点

nodeSelector

nodeAffinity

podAffinity

滚动更新

HPA 自动扩/缩容

开启指标服务

cpu、内存指标监控

自定义 metrics

服务发布

Service

Service 的定义

命令操作

Endpoint

代理 k8s 外部服务

各环境访问名称统一

访问 k8s 集群外的其他服务

项目迁移

反向代理外部域名

常用类型

ClusterIP

ExternalName

NodePort

LoadBalancer

Ingress

安装 ingress-nginx

添加 helm 仓库

下载包

配置参数

创建 Namespace

安装 ingress

基本使用

创建一个 ingress

多域名配置

配置与存储

配置管理

ConfigMap

创建

使用 ConfigMap

加密数据配置 Secret

SubPath 的使用

配置的热更新

通过 edit 命令直接修改 configmap

通过 replace 替换

不可变的 Secret 和 ConfigMap

持久化存储

Volumes

HostPath

配置文件

EmptyDir

配置文件

NFS 挂载

安装 nfs

配置文件

PV 与 PVC

生命周期

构建

静态构建

动态构建

绑定

使用

回收策略

保留(Retain)

删除(Delete)

回收(Recycle)

PV

状态

Available:空闲,未被绑定

Bound:已经被 PVC 绑定

Released:PVC 被删除,资源已回收,但是 PV 未被重新使用

Failed:自动回收失败

配置文件

PVC

Pod 绑定 PVC

配置文件

StorageClass

制备器(Provisioner)

NFS 动态制备案例

nfs-provisioner

StorageClass 配置

RBAC 配置

PVC 处于 Pending 状态

配置 SelfLink

不需要 SelfLink 的 provisioner

PVC 测试配置

高级调度

CronJob 计划任务

cron 表达式

配置文件

初始化容器 InitContainer

污点和容忍

污点(Taint)

NoSchedule

NoExecute

容忍(Toleration)

Equal

Exists

亲和力(Affinity)

NodeAffinity

RequiredDuringSchedulingIgnoredDuringExecution

PreferredDuringSchedulingIgnoredDuringExecution

应用

匹配类型

In

NotIn

Exists

DoesNotExist

Gt

Lt

配置模板

PodAffinity

RequiredDuringSchedulingIgnoredDuringExecution

PreferredDuringSchedulingIgnoredDuringExecution

配置模板

PodAntiAffinity

RequiredDuringSchedulingIgnoredDuringExecution

PreferredDuringSchedulingIgnoredDuringExecution

身份认证与权限

认证

User Accounts

Service Accounts

Service Account 自动化

Service Account Admission Controller

Token Controller

Service Account Controller

授权(RBAC)

Role

配置文件

ClusterRole

RoleBinding

配置文件

ClusterRoleBinding

IV. 运维管理篇

Helm 包管理器

什么是 Helm?

Helm 架构

重要概念

chart

config

release

组件

Helm 客户端

Helm 库

安装 Helm

下载二进制文件

解压(tar -zxvf helm-v3.10.2-linux-amd64.tar.gz)

将解压目录下的 helm 程序移动到 usr/local/bin/helm

添加阿里云 helm 仓库

Helm 的常用命令

helm repo

列出、增加、更新、删除 chart 仓库

helm search

使用关键词搜索 chart

helm pull

拉取远程仓库中的 chart 到本地

helm create

在本地创建新的 chart

helm dependency

管理 chart 依赖

helm install

安装 chart

helm list

列出所有 release

helm lint

检查 chart 配置是否有误

helm package

打包本地 chart

helm rollback

回滚 release 到历史版本

helm uninstall

卸载 release

helm upgrade

升级 release

chart 详解

目录结构

Redis chart 实践

修改 helm 源

搜索 redis chart

修改配置安装

查看安装情况

升级与回滚

helm 卸载 redis

k8s 集群监控

监控方案

Heapster

Weave Scope

Prometheus

Prometheus 监控 k8s

自定义配置

创建 ConfigMap 配置

部署 Prometheus

配置访问权限

服务发现配置

系统时间同步

监控 k8s 集群

从 kubelet 获取节点容器资源使用情况

Exporter 监控资源使用情况

对 Ingress 和 Service 进行网络探测

Grafana 可视化

基本概念

数据源(Data Source)

仪表盘(Dashboard)

组织和用户

集成 Grafana

部署 Grafana

服务发现

配置 Grafana 面板

kube-prometheus

替换国内镜像

修改访问入口

安装

配置 Ingress

卸载

ELK 日志管理

ELK 组成

Elasticsearch

Filebeat

Logstash

Kibana

集成 ELK

部署 es 搜索服务

部署 logstash 数据清洗

部署 filebeat 数据采集

部署 kibana 可视化界面

Kibana 配置

Kubernetes 可视化界面

Kubernetes Dashboard

安装

配置所有权限账号

Dashboard 的使用

kubesphere

本地存储动态 PVC

安装

启用可插拔组件

Rancher

Kuboard

V. Spring Cloud Alibaba 微服务 DevOps 实战

DevOps 环境搭建

Gitlab

安装 Gitlab

页面配置

配置 Secret

为项目配置 Webhook

卸载

Harbor

安装 Harbor

配置 Secret

SonarQube

安装 SonarQube

生成服务 token

创建 Webhook 服务

创建项目

Jenkins

构建带 maven 环境的 jenkins 镜像

安装 Jenkins

安装插件

Build Authorization Token Root

Gitlab

SonarQube Scanner

Node and Label parameter

Kubernetes

Config File Provider

Git Parameter

创建 gitlab 访问凭证

案例:SpringBoot 项目 CICD

配置节点标签

创建流水线项目

Webhook 构建触发器

Pipeline 脚本配置

检查/创建相关凭证

Harbor 镜像仓库凭证

Gitlab 访问凭证

kubeconfig 文件 id

SonarQube 凭证

添加 SonarQube Webhook

项目构建

微服务 DevOps 实战

项目构建

项目环境

MySQL

Nacos

Redis

MongoDB

Elasticsearch

RocketMQ

服务

API 网关

用户服务

商品服务

秒杀服务

前端服务

Jenkins CICD

创建流水线项目

Extended Choice Parameter

Kubesphere DevOps

开启 DevOps

集成 SonarQube

更新 settings.xml

部署项目

Spring Boot 项目

项目

ks-cicd-demo

配置文件

harbor-secret

微服务项目

项目

ks-shop-dev

ks-shop-flashsale

配置文件

harbor-secret

DevOps 项目

Spring Boot 项目

流水线

cicd-demo

配置

gitlab-user-pass

harbor-user-pass

kubeconfig-id

构建参数

分支

版本号

微服务项目

流水线

flashsale-cicd

配置

gitlab-user-pass

harbor-user-pass

kubeconfig-id

构建参数

服务

frontend-server

shop-parent/api-gateway

shop-parent/shop-uaa

shop-parent/shop-provider/flashsale-server

shop-parent/shop-provider/product-server

命名空间

snapshots

releases

副本数

1

3

5

7

版本号

分支

相关思维导图模板

职业生涯人物访谈思维导图

树图思维导图提供 职业生涯人物访谈 在线思维导图免费制作,点击“编辑”按钮,可对 职业生涯人物访谈  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:c1f2e2bd2ea229fce3f9797aa82def65

社群客服SOP细则思维导图

树图思维导图提供 社群客服SOP细则 在线思维导图免费制作,点击“编辑”按钮,可对 社群客服SOP细则  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:81b812ba763ba888461739d58163c1e4