[TOC]
导读 十年云计算浪潮下,DevOps、容器、微服务等技术飞速发展,云原生成为潮流。 云原生2.0是企业化从“ON Cloud”走向“IN Cloud”,成为“新云原生企业”,新生能力与既有能力立而不破、有机协同,实现资源高效、应用敏捷、业务智能、安全可信。
云原生基础介绍 云原生技术发展历程 了解云原生的发展历程,学习云原生的基本概念以及技术体系。
image-20210725115217390
云计算发展历程
image-20210725153229573
凭借其先进的理念以及活跃的社区生态,kubernetes 是近 三十年来增长最快的开源项目之一。带领了云原生的发展。
image-20210725115339664
CNCF 在国内有60➕企业成员参与
image-20210726145805590
image-20210725115829456
云原生核心概念
声明式API 面向开发者提供全新分布式原语
image-20210725120404011
服务网格,剥离业务代码和分布式框架
image-20210725120624642
云原生技术体系 CNCF(云原生基金会) 已成为云计算领域新的 “标准” 制定者。
image-20210725142931929
开源社区是云原生技术的推动者(加快技术的普及),同时是相关技术标准的制定者(厂商共同联合开发)。
image-20210725141912134
云原生技术版图
CNCF 的项目成熟度模型
云原生平台技术架构发展方向:以 “应用” 为中心的云 “OS”
image-20210725143959696
判断题
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。
true 正确
false
单选题
云原生技术的官方推广组织是哪个?
openstack社区
CNCF 正确
Docker公司
多选题
以下哪些是云原生的代表技术?
容器
微服务
服务网格
声明式API
正确
以下关于云原生理念的说法正确的是?
解耦软件开发,提高灵活性和可维护性
多云支持,避免厂商锁定
避免侵入式定制
提高工作效率和资源利用率
正确
容器技术基础介绍 加深学习 介绍云原生技术体系中的基石容器技术。
容器技术基础,详细阐述了整个容器的结构和技术构成,清晰的分解了容器的架构和技术交互原理,方便理解核心基础的相关知识能力,为集群构建的理解奠定基础
第1章 容器技术发展简介 引入容器技术的背景
image-20210725144823022
基础概况:
image-20210725144923953
Cgroup
image-20210725145003025
Namespace 概念
image-20210725145035621
Linux Namespace是一种资源限制的方案。
true
false 正确
单线题
以下哪个命令不是docker命令?
docker run
docker build
docker kill 正确
多选题
Cgroups包含以下哪些子系统?
cpu 子系统
memory 子系统
devices 子系统
swap子系统 x
正确
Linux Namespace包含以下哪些类型?
pid namespace
uts namespace
user namespace
mount namespace
第2章 Docker容器和容器镜像技术介绍
image-20210725145216050
Docker VS VM
image-20210725145335687
使用流程
image-20210725145425672
docker 镜像
image-20210725145622236
image-20210725145629243
优势与分层结构
image-20210725145713062
第3章 镜像仓库介绍
image-20210725145824583
第4章 如何使用Dockerfile进行构建 什么是dockerfile?
image-20210725150022221
使用dockerfile构建
image-20210725150136973
常用参数:
image-20210725150205159
新的镜像构建工具产生背景
image-20210725150256825
总结 :
Kubernetes 系统快速入门 介绍云原生技术体系中Kubernetes的相关概念和技术架构。
kubernetes的系统入门,简介明了的讲解kubernetes整体组件和构成,加深对kubernetes的结构认识以及各个模块如何技术交互完成应用的部署和管理,非常使用的基础课程讲解
第1章 kubernetes介绍 kubernetes 架构 生态主要层次
image-20210725153617670
kubernetes 模型对象 、功能组件 与 特性
image-20210725154114365
第2章 Kubernetes基本概念 Pod 概念:
image-20210725153939275
Pod Containers
基础容器:
$ vim /var/lib/kubelet/kubeadm-flags.env
–pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1 K8s v1.23.1
image-20210725154148261
容器基础组成
Pod 与 Work 负载关系
label-selector : 在 brog 中学习到的经验
ownReference : 1.15 或者 1.16 之后,希望Pod有唯一的控制者 (指向的关系)
HA :
ReplicaSet : 保证Pod副本的数量,用于无状态服务,现在主要使用Deployment
image-20210725154831348
Deployment
第3章 kubernetes总体架构 系统组件:
image-20210725155133990
总体架构:
基于List-Watch机制的控制器架构
image-20210725155906243
kubernetes Controllers : 保持副本数量
image-20210725155817798
Scheduler : 为Pod找到一个合适的Node , 后续涉及 节点 亲和 、Pod 亲和
image-20210725160312283
Default Scheduler:
image-20210725160459633
判断题
Kubernetes属于CNCF基金会。
true 正确
false
单选题
Kubernetes中,能够创建、调度、和管理的最小部署单元是什么?
Pod 正确
container
ReplicaSet
Deployment
多选题
Pod 中的容器包含哪几种?
基础容器
初始化容器
业务容器
回收容器
正确
Kubernetes架构共分为哪几层?
生态层
接口层
治理层
应用层
内核层
正确
Kubernetes 集群管理 清晰讲解了Kubernetes集群的整体架构和各个组件运行机理,方便快速理解设计思路,为后续kubernetes管理运维奠定基础,非常受用的课程讲解。
1.1 kubernetes集群生命周期管理介绍 常见的部署形态:
image-20210725221126321
常用部署方式:
image-20210725221316057
kubernetes 生产集群
image-20210725221531427
CCE 集群
image-20210725221651848
1.2 kubernetes节点与节点池生命周期管理介绍 Node 定义
image-20210725222023620
下面哪一项不属于Kubernetes生产集群的关键诉求?
高可用 Availability
弹性伸缩 Scale
V 无服务器化 Serverless
安全和权限管理 Security and access management
Kubernetes工作负载管理 1.1 deployment概念及使用场景 工作负载介绍
image-20210725223400063
Deployment 概述
image-20210725223721810
语法:
image-20210725223942484
常用操作
kubectl create deployment -n test –image=nginx:latest –replicas 1 nginx-demo
-l app=nginx
deployment.apps/nginx-demo created
kubectl get pod NAME READY STATUS RESTARTS AGE nginx-demo-9454dc46c-9g8mb 1/1 Running 0 102s nginx-demo-9454dc46c-mc4bh 1/1 Running 0 102s nginx-demo-9454dc46c-w4cch 1/1 Running 0 102s
kubectl get deployments.apps NAME READY UP-TO-DATE AVAILABLE AGE nginx-demo 3/3 3 3 2m27s
使用总结:
image-20210725224555868
1.2 daemonset概念及使用场景 概述
image-20210726093052846
json 获取
image-20210726093309276
image-20210726093335727
1.3 job/cronjob概念及使用场景 Job / CronJob 概述
image-20210725224746030
语法
image-20210725224940307
image-20210725225338252
总结记录
image-20210725225419454
image-20210726093736894
单选题
下面哪条命令可以对Deployment进行回滚?
kubectl rollout history deploy/nginx
kubectl rollout undo deploy/nginx 正确
kubectl rollout status deploy/nginx
当CronJob在创建任务执行时,发生重叠时的处理策略可以通过以下哪个字段设置?
Schedule
ConcurrencyPolicy 正确
Suspend
多选题
以下哪些命令可以对Deployment进行更新?
kubectl edit deploy/nginx v
kubectl apply -f nginx.yaml v
kubectl set image deploy/nginx nginx=nginx:1.9.1 v
kubectl create -f nginx.yaml
正确
下列哪些应用适合用DaemonSet部署?
fluentd v
node problem detector v
gpu device plugin v
nginx
正确
Kubernetes持久化数据卷管理 1.1PersistentVolume的概念及使用场景 无状态与有状态应用对比说明
1.2 PersistentVolumeClaim的概念及使用场景 PV/PVC/SC 基础介绍
image-20210726095353400
1.3 Statefulset的概念和使用 statefulset 概念
image-20210726095034804
image-20210726100433403
Kubernetes 网络与服务管理 详细介绍Kubernetes service和Kubernetes ingress的概念及使用场景。
第1章 Kubernetes service 概念及使用场景介绍 基础概念:
[TOC]
导读 十年云计算浪潮下,DevOps、容器、微服务等技术飞速发展,云原生成为潮流。 云原生2.0是企业化从“ON Cloud”走向“IN Cloud”,成为“新云原生企业”,新生能力与既有能力立而不破、有机协同,实现资源高效、应用敏捷、业务智能、安全可信。
云原生基础介绍 云原生技术发展历程 了解云原生的发展历程,学习云原生的基本概念以及技术体系。
image-20210725115217390
云计算发展历程
image-20210725153229573
凭借其先进的理念以及活跃的社区生态,kubernetes 是近 三十年来增长最快的开源项目之一。带领了云原生的发展。
image-20210725115339664
CNCF 在国内有60➕企业成员参与
image-20210726145805590
image-20210725115829456
云原生核心概念
声明式API 面向开发者提供全新分布式原语
image-20210725120404011
服务网格,剥离业务代码和分布式框架
image-20210725120624642
云原生技术体系 CNCF(云原生基金会) 已成为云计算领域新的 “标准” 制定者。
image-20210725142931929
开源社区是云原生技术的推动者(加快技术的普及),同时是相关技术标准的制定者(厂商共同联合开发)。
image-20210725141912134
云原生技术版图
CNCF 的项目成熟度模型
云原生平台技术架构发展方向:以 “应用” 为中心的云 “OS”
image-20210725143959696
判断题
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。
true 正确
false
单选题
云原生技术的官方推广组织是哪个?
openstack社区
CNCF 正确
Docker公司
多选题
以下哪些是云原生的代表技术?
容器
微服务
服务网格
声明式API
正确
以下关于云原生理念的说法正确的是?
解耦软件开发,提高灵活性和可维护性
多云支持,避免厂商锁定
避免侵入式定制
提高工作效率和资源利用率
正确
容器技术基础介绍 加深学习 介绍云原生技术体系中的基石容器技术。
容器技术基础,详细阐述了整个容器的结构和技术构成,清晰的分解了容器的架构和技术交互原理,方便理解核心基础的相关知识能力,为集群构建的理解奠定基础
第1章 容器技术发展简介 引入容器技术的背景
image-20210725144823022
基础概况:
image-20210725144923953
Cgroup
image-20210725145003025
Namespace 概念
image-20210725145035621
Linux Namespace是一种资源限制的方案。
true
false 正确
单线题
以下哪个命令不是docker命令?
docker run
docker build
docker kill 正确
多选题
Cgroups包含以下哪些子系统?
cpu 子系统
memory 子系统
devices 子系统
swap子系统 x
正确
Linux Namespace包含以下哪些类型?
pid namespace
uts namespace
user namespace
mount namespace
第2章 Docker容器和容器镜像技术介绍
image-20210725145216050
Docker VS VM
image-20210725145335687
使用流程
image-20210725145425672
docker 镜像
image-20210725145622236
image-20210725145629243
优势与分层结构
image-20210725145713062
第3章 镜像仓库介绍
image-20210725145824583
第4章 如何使用Dockerfile进行构建 什么是dockerfile?
image-20210725150022221
使用dockerfile构建
image-20210725150136973
常用参数:
image-20210725150205159
新的镜像构建工具产生背景
image-20210725150256825
总结 :
Kubernetes 系统快速入门 介绍云原生技术体系中Kubernetes的相关概念和技术架构。
kubernetes的系统入门,简介明了的讲解kubernetes整体组件和构成,加深对kubernetes的结构认识以及各个模块如何技术交互完成应用的部署和管理,非常使用的基础课程讲解
第1章 kubernetes介绍 kubernetes 架构 生态主要层次
image-20210725153617670
kubernetes 模型对象 、功能组件 与 特性
image-20210725154114365
第2章 Kubernetes基本概念 Pod 概念:
image-20210725153939275
Pod Containers
基础容器:
$ vim /var/lib/kubelet/kubeadm-flags.env
–pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1 K8s v1.23.1
image-20210725154148261
容器基础组成
Pod 与 Work 负载关系
label-selector : 在 brog 中学习到的经验
ownReference : 1.15 或者 1.16 之后,希望Pod有唯一的控制者 (指向的关系)
HA :
ReplicaSet : 保证Pod副本的数量,用于无状态服务,现在主要使用Deployment
image-20210725154831348
Deployment
第3章 kubernetes总体架构 系统组件:
image-20210725155133990
总体架构:
基于List-Watch机制的控制器架构
image-20210725155906243
kubernetes Controllers : 保持副本数量
image-20210725155817798
Scheduler : 为Pod找到一个合适的Node , 后续涉及 节点 亲和 、Pod 亲和
image-20210725160312283
Default Scheduler:
image-20210725160459633
判断题
Kubernetes属于CNCF基金会。
true 正确
false
单选题
Kubernetes中,能够创建、调度、和管理的最小部署单元是什么?
Pod 正确
container
ReplicaSet
Deployment
多选题
Pod 中的容器包含哪几种?
基础容器
初始化容器
业务容器
回收容器
正确
Kubernetes架构共分为哪几层?
生态层
接口层
治理层
应用层
内核层
正确
Kubernetes 集群管理 清晰讲解了Kubernetes集群的整体架构和各个组件运行机理,方便快速理解设计思路,为后续kubernetes管理运维奠定基础,非常受用的课程讲解。
1.1 kubernetes集群生命周期管理介绍 常见的部署形态:
image-20210725221126321
常用部署方式:
image-20210725221316057
kubernetes 生产集群
image-20210725221531427
CCE 集群
image-20210725221651848
1.2 kubernetes节点与节点池生命周期管理介绍 Node 定义
image-20210725222023620
下面哪一项不属于Kubernetes生产集群的关键诉求?
高可用 Availability
弹性伸缩 Scale
V 无服务器化 Serverless
安全和权限管理 Security and access management
Kubernetes工作负载管理 1.1 deployment概念及使用场景 工作负载介绍
image-20210725223400063
Deployment 概述
image-20210725223721810
语法:
image-20210725223942484
常用操作
kubectl create deployment -n test –image=nginx:latest –replicas 1 nginx-demo
-l app=nginx
deployment.apps/nginx-demo created
kubectl get pod NAME READY STATUS RESTARTS AGE nginx-demo-9454dc46c-9g8mb 1/1 Running 0 102s nginx-demo-9454dc46c-mc4bh 1/1 Running 0 102s nginx-demo-9454dc46c-w4cch 1/1 Running 0 102s
kubectl get deployments.apps NAME READY UP-TO-DATE AVAILABLE AGE nginx-demo 3/3 3 3 2m27s
使用总结:
image-20210725224555868
1.2 daemonset概念及使用场景 概述
image-20210726093052846
json 获取
image-20210726093309276
image-20210726093335727
1.3 job/cronjob概念及使用场景 Job / CronJob 概述
image-20210725224746030
语法
image-20210725224940307
image-20210725225338252
总结记录
image-20210725225419454
image-20210726093736894
单选题
下面哪条命令可以对Deployment进行回滚?
kubectl rollout history deploy/nginx
kubectl rollout undo deploy/nginx 正确
kubectl rollout status deploy/nginx
当CronJob在创建任务执行时,发生重叠时的处理策略可以通过以下哪个字段设置?
Schedule
ConcurrencyPolicy 正确
Suspend
多选题
以下哪些命令可以对Deployment进行更新?
kubectl edit deploy/nginx v
kubectl apply -f nginx.yaml v
kubectl set image deploy/nginx nginx=nginx:1.9.1 v
kubectl create -f nginx.yaml
正确
下列哪些应用适合用DaemonSet部署?
fluentd v
node problem detector v
gpu device plugin v
nginx
正确
Kubernetes持久化数据卷管理 1.1PersistentVolume的概念及使用场景 无状态与有状态应用对比说明
1.2 PersistentVolumeClaim的概念及使用场景 PV/PVC/SC 基础介绍
image-20210726095353400
1.3 Statefulset的概念和使用 statefulset 概念
image-20210726095034804
image-20210726100433403
Kubernetes 网络与服务管理 详细介绍Kubernetes service和Kubernetes ingress的概念及使用场景。
第1章 Kubernetes service 概念及使用场景介绍 基础概念:
1 2 3 kubectl get ep -n weiyigeek NAME ENDPOINTS AGE nginx-service 192.168.109.74:80,192.168.109.75:80 12d
Service 定义
image-20210726102948709
ClusterIP 集群内部微服务之间访问。
image-20210726113346954
Service类型1 :Services Without Selectors (服务转发)
image-20210726112358866
主要用于有状态服务的场景。
image-20210726112433848
$num=0;Get-ChildItem -Path . -Recurse -Name 111.txt | %{ echo $_ ; $num += (GC $_ | Measure-Object).count };echo $num
ExternalName Service
image-20210726113837474
Kube-proxy 实现 Services 原理
image-20210726114034203
第2章 Kubernetes ingress概念及使用场景介绍 七层流量转发(http)
ingress 模型,依赖Service
image-20210726114138602
ingress 定义
ingress 实现
image-20210726114418282
Kubernetes应用配置管理 Configmap是应用部署配置必备的资源,数据库配置、环境变量使用很频繁,Secret密码或者类似的安全认证或证书等基本都通过它来使用也是很常用的基本能力
前言:
image-20210726124129667
配置概述:
image-20210726124204449
image-20210726142457030
1.1 Configmap应用配置概念及使用场景
image-20210726141253895
ConfigMap 创建
image-20210726141511246
image-20210726141540326
总结说明: 数据块不能超过 1MB, 特别注意挂载配置文件和配置环境变量时的区别。
image-20210726124627790
1.2 Secret概念及使用场景 概述:
image-20210726141834099
image-20210726141915683
image-20210726142021060
image-20210726142121233
使用小结
image-20210726125010351
判断题
Pod只能使用相同命名空间(namespace)中的ConfigMap。
true 正确
false
Secret专用于保存敏感数据,Kubernetes默认会对其进行加密来提供安全保障。
true
false 正确
单选题
下面说法正确的是?
ConfigMap大小不受限制。
ConfigMap必须先于Pod创建,否则Pod无法启动。 正确
ConfigMap是一种不安全的配置资源,不推荐使用。
多选题
下面说法正确的是?
ConfigMap常用于保存非敏感应用配置。
Secret常用于保存敏感的应用配置。
Secret的安全性需要管理员配置RBAC规则等手段进行保证。
ConfigMap和Secret可以同时使用。
Istio服务网格快速入门 详细介绍服务网格的概念和Istio服务网格架构及使用场景。
官网链接: https://istio.io/
image-20210726145830112
1.1 服务网格的概念介绍 基本概念:
服务网格是承载微服务架构理念的云原生技术形态。
image-20210726150053431
发展历程:
image-20210726150259727
1.2 Istio服务网格架构及使用场景介绍 基本概念:
What:Istio是什么;
Why:为什么要用Istio;
How:怎么使用Istio。
image-20210726150312499
例子: 实现 80% 流量 去往 微服务1 , 20% 流量去往微服务2。
四个特性:Connect 、Secure、Observe、Control
Proxy: 数据面代理
Ingress Gateway 资源: 网格入口,所有访问流量都要经过他。
Virtual Services: 所有的功能都是通过配置策略来实现的,例如实现服务之间的访问互通,流量注入,重试,超时功能等
Destination Rule: 服务集合,流量治理策略、负载均衡模式, LPS的通信,熔断
Tips : 所有的配置文件都是通过yaml格式实现的。
控制面组件与功能: 然后通过Galley组件来解析配置并通过Pilot组件下发到proxy并执行策略,最后 Citadel 安全方面的服务治理(服务间认证、与授权),由上述三个组件共同组建成为了lstiod
作为一个Pod运行在集群之中。
image-20210726152310217
基础示例:
image-20210726175018553
image-20210726175202745
技术架构\:
image-20210726185348964
功能特性:
image-20210726185544130
应用场景:
image-20210726191420464
判断题
对于云原生应用,采用 Kubernetes 构建微服务部署和集群管理能力,采用 Istio 构建服务治理能力,将逐渐成为应用微服务转型的标准配置。 true 正确 false
单选题
以下哪个组件不是Istio的核心组件? Pilot kubelet 正确 Galley Citadel
多选题
Istio的基本资源包括哪些? Gateway Virtual Service Deployment Destination Rule 正确
Istio的应用场景有哪些? 灰度发布 流量管理 访问可视化 开发应用 正确
Istio灰度发布管理 复习:
前言: 详细介绍灰度发布的定义,分类,流程及ASM灰度发布功能与使用场景。
1.1 业务灰度发布概述 WHAT : 什么是灰度发布? (概念和分类以及流程)
金丝雀发布 : 平滑升级、安全迭代。
蓝绿发布 : 零停机、快速升级、一键回退。
image-20210727092830384
流程:
image-20210727093013015
1.2 灰度发布功能与使用场景介绍 WHY : 为什么要用灰度发布? (功能优势以及使用场景)
HOW : 如何使用灰度发布?(实践)
image-20210727093223066
image-20210727093233635
基于权重的灰度发布与上面基于内容发布的区别在于VirtualService
image-20210727093912750
蓝绿发布 (与灰度发布的类似)
image-20210727094050838
image-20210727094229186
判断题
灰度发布是软件开发的一种重要手段。 true false 正确
单选题
关于蓝绿发布,以下哪个描述不正确? 蓝绿发布提供了一种零宕机的部署方式。 蓝绿发布支持在新旧两个版本间快速切换。 蓝绿发布指的是引一部分实际流量对一个新版本进行测试。 正确
多选题
灰度发布具体包括以下哪些类型? 蓝绿发布 基于权重的灰度发布 基于内容的灰度发布 基于请求体的灰度发布 正确
Istio流量治理与监控管理 详细介绍Istio典型、常用的流量治理策略,Istio的可观测性:访问日志、调用链、监控指标等。
1.1 Istio非侵入式服务治理概念介绍 (1)微服务
image-20210727095332199
image-20210727095448677
微服务框架 与 服务网格间的差别。
pageid: 480
1.2 流量治理 流量治理策略 (限流 、发布)
image-20210727100204030
1.2.2 负载均衡与API 对象
image-20210727100635568
使用案例:
image-20210727100733725
image-20210727100745604
image-20210727101309762
image-20210727101438755
image-20210727101553487
image-20210727101721013
image-20210727101839486
image-20210727102003563
image-20210727102049602
image-20210727102412997
image-20210727102429034
image-20210727102629033
image-20210727102616820
1.3 基本监控功能与使用场景介绍
image-20210727102949265
Istio 访问日志
image-20210727103209827
判断题 Istio故障注入只支持访问时延注入。 true false 正确
单选题
Istio负载均衡通过哪个API设置? Virtual Service Destination Rule 正确 ServiceEntry
多选题
下面哪些属于服务网格的优势? 业务代码无侵入 开发语言无关 动态配置策略 支持业务优雅升级 正确
Istio支持的Trace后端包括哪些? Zipkin Jaeger LightStep Datadog 正确
ugo 依赖于 Markdown 文件,元数据字体 。用户可以从任意的目录中运行 Hugo,支持共享主机和其他系统。
Hugo 只需要几分之一秒就可以渲染一个经典的中型网站,最好网站的每个部分渲染只需 1 毫秒。
Hugo 非常适合博客,文档等等网站的生成。
Hugo 当前提供 Windows,Linux,FreeBSD,NetBSD 和 OS X (Darwin) 的 x64, i386 和 ARM 架构的二进制预构建包。
Hugo 的源代码可以通过 Go 编译器工具链编译到任意地方运行,例如: DragonFly BSD, OpenBSD, Plan 9 和 Solaris。
https://www.cnblogs.com/20175211lyz/