华为云云原生王者之路集训营(黄金-第三章和第四章)

举报
菜鸟级攻城狮 发表于 2021/06/19 10:38:39 2021/06/19
【摘要】 华为云云原生王者之路集训营(黄金-第三章和第四章)


第三章 Kubernetes系统快速入门

1.kubernetes介绍

云计算的发展历程

“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。

   




kubernets概览

模型对象  

1.Pod  能够创建、调度和管理最小部署单元

2.Service  一个Pod的逻辑集合和访问这个集合的策略

3.Deployment  无状态工作负载          StatefulSet  有状态工作负载

...

增删改查  apiserver

功能组件   Master:   apiserver        Scheduler          Controller  Manager

Node: Kubelet      Kube-proxy

功能特性: Pod调度  部署启动  运行监控  服务发现  升级运维  扩容缩容  


关键概念-Pod


在Kubernetes中,Pods是能够创建、调度、和管理的最小部署单元,是一组容器的集合, 而不是单独的应用容器。

同一个Pod里的容器共享同一个网络命名空间,IP地址及 端口空间。

从生命周期来说,Pod是短暂的而不是长久的应用。Pods被调度到节点,保持在这个节点上直到被销毁。


POD实例:

{

"kind": "Pod",


"apiVersion": "v1",

"metadata": {

"name": "redis-django",

"labels":{

    "app": "webapp"

  }

},

"spec":{

  "containers": [

   {

     name": "key-value-store",

     "image": "redis"

},

{

    "name": "frontend",

     "image": "django"

      }

    ]

  }

}


Pod详解-容器(Containers)

Infrastructure Container:基础容器

    1.用户不可见,无需感知

    2.维护整个Pod网络空间

InitContainers:初始化容器,一般用于服务等待处理以及注册Pod信息等

   1.先于业务容器开始执行

   2.顺序执行,执行成功退出(exit0) ,全部执行成功后开始启动业务容器


Containers:业务容器(Tomcat,nginx等)

    并行启动,启动成功后一直Running

容器基本组成:

镜像部分: 镜像地址和拉取策略       拉取镜像的认证凭据


启动命令:

command:替换docker容器的entrypoint

args: 作为docker容器entrypoint的入参

计算资源:

请求值:调度依据

限制值:容器最大能使用的规格    

Pod详解-外部输入

Pod可以接收的外部输入方式:环境变量、配置文件以及密钥。

环境变量:使用简单,但一旦变更后必须重启容器。

Key-value 自定义     From 配置文件(configmap)     From密钥(Secret)

以卷形式挂载到容器内使用,权限可控。  配置文件(configmap)      密钥(secret)


 


Pod与工作负载的关系

通过label-selector和owerReference 相关联

Pod 通过工作负载实现应用的运维,如伸缩、升级等

关键工作负载-ReplicaSet

  • ReplicaSet-----副本控制器
  • 确保Pod的一定数量的份数(replica)在运行。如果超过这个数量,控制器会杀死一些,如果少了,控制器会启动一些。
  • ReplicaSet用于解决pod的扩容和缩容问题(HA,工作负载等)
  • 通常用于无状态应用


关键工作负载--Deployment

Kubernetes Deployment提供了官方的用于更新Pod和Replica Set (下一代的Replication Controller)的方法,您可以在Deployment对象中只描述您所期望的理想状态(预期的运行状态),Deployment控制器为您将现在的实际状态转换成您期望的状态;

Deployment集成了上线部署、滚动升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某一版本(成功/稳定)的Deployment等功能,在某种程度上,Deployment可以帮我们实现无人值守的上线,大大降低我们的上线过程的复杂沟通、操作风险。

Deployment的典型用例:

1.使用Deployment来启动(上线/部署)一个Pod或者ReplicaSet

2.检查一个Deployment是否成功执行

3.更新Deployment来重新创建相应的Pods(例如,需要使用一个新的Ilmage).

4.如果现有的Deployment不稳定,那么回滚到一个早期的稳定的Deployment版本

users:命令行,接口为主

master:

etcd 保存了整个集群的状态;

apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;

controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;

scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;

考虑HA或多活会有多个master,非实验环境下node都会有很多




Kubernetes Controllers

Kubernetes的Default scheduler

  • 为 pod 找到一个合适的 Node
  • Default scheduler 基于列队的调度器,一次调度一个pod,调度时刻全局最优


第四章  Kubernetes集群管理

1.Kubernetes集群生命周期管理介绍

      1.kubernetes集群的部署形态

自建模式:需要用户管理,可操作性最大,k8s用户节点,k8s控制平面,k8s对接云服务和集群管理对接基础设施

托管模式(CCE):需要管理业务和k8s用户节点,聚焦于业务

Serverless模式(CCI):只需要管理业务。

 kubernetes集群-常见部署方式

 

本地服务器:minikube,本地开发调试

自备服务器:kubeadm,kops,kubespray ,第三方托管,需要动手,学习

云服务CCE:容器平台集群管理 + 云基础设施

云服务CCI:容器平台serverless——云基础设施——服务器。

Kubernetes部署工具:https://kubernetes.io/zh/docs/setup/production-environment/tools/

Turnkey 云解决方案:https://kubernetes.io/zh/docs/setup/production-environment/turnkey-solutions


K8S生产集群

1.高可用(满足业务容灾需求)2.弹性伸缩(满足动态资源需求)3.安全和权限管理(满足组织权限管理需求)

自建与运维k8s集群优点是高灵活性,可定制开发。缺点是重资产,高投入,运维成本高,跨云迁移困难。(推荐开发者学习)

使用CNCF认证k8s容器平台优点是轻资产,低投入,运维成本低,跨云迁移方便。缺点是灵活性较低,迭代依赖云产商。(企业生产)

Kubernetes生产环境:Kubernetes 文档 入门 生产环境

K8S集群架构-CCE集群

CCE集群:控制平面托管,深度对接云基础设施,云原生全栈

云容器引擎与其他云服务的关系

https://support.huaweicloud.com/productdesc-cce/cce_productdesc_0008.html

集群概述:云容器引擎 CCE > 用户指南> 集群管理> 集群概述

生命周期:https://support.huaweicloud.com/usermanual-cce/cce_01_0005.html

cce集群网络规划实践:https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_00004.html

2.Kubernetes节点生命周期介绍

kubernetes节点介绍-Node定义

Kubernetes架构节点: https://kubernetes.io/zh/docs/concepts/architecture/nodes/  

业务负载(POD)是资源的消费者

节点(Node)是业务负载的载体

云产商(Provider)是基础资源的生产者

通过节点池管理集群节点资源

节点池:集群中具有相同配置的一组节点,一个节点包含一个节点或多个节点
CCE集群中支持多种方式添加节点:

节点管理:创建节点(通过CCE创建服务器)

节点管理:纳管节点(已创建的服务器)

节点池管:更新期望节点数

默认节点池:创建节点、纳管节点    节点池:节点池节点

购买集群:https//suport.huaweicloud.com/usermanual-cce/cce_01_0298.html

小结:

1.了解Kubernetes节点的基本概念

2.了解CCE集群中扩容节点的3种方式

3.演示:使用节点池管理快速地扩容节点资源

4.初步了解了Kubernetes集群的组件

5.初步了解了集群常见的部署形态和方式

6.以华为云CCE服务为例,初步了解了如何通过云容器平台快速搭建Kubernetes集群、添加Node节点。

节点概述:https://support.huaweicloud.com/usermanual-cce/cce_01_0180.html
购买节点: https://support.huaweicloud.com/usermanual-cce/cce_01_0033.html
节点池概述: https://support.huaweicloud.com/usermanual-cce/cce_01_0081.html
创建节点池: https://support.huaweicloud.com/usermanual-cce/cce_01_0012.html
管理节点池: https://support.huaweicloud.com/usermanual-cce/cce_01_0222.html

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。