01.kubernetes入门-核心概念

内容介绍

  • 什么是Kubernetes

  • Kubernetes的架构

  • Kubernetes的核心概念与API

  • 尝试一下Kubernetes 吧

一、什么是Kubernetes

Kubernetes是一个工业级容器编排平台

Kubernetes源于希腊语,意为“舵手”或“飞行员”

k8s是通过将8个字母“ubernete”替换为8而导出的缩写

1、自动化的容器编排平台
  • 部署

  • 弹性

  • 管理

2、核心功能
  • 服务发现与负载均衡

  • 自动发布与回滚

  • 容器自动装箱

  • 配置与密文管理

  • 存储编排

  • 批量执行

  • 自动容器恢复

  • 水平伸缩

3、Kubernetes -调度

可以把用户提交的容器放到Kubernetes集群的某一台节点上去,Kubernetes的调度器是执行这项能力的组件,可观察被调度容器的大小和规格,然后在集群中找到一台空闲机器进行放置操作。

4、Kubernetes -自动恢复

节点健康检查的功能,可以检测集群中所有的宿主机,当宿主机本身出现故障或者软件出现故障时,节点健康检查会自动发现,Kubernetes会将进行失败的节点进行迁移,迁移到正在健康运行的宿主机上,来完成集群内容器的自动恢复。

5、Kubernetes -水平伸缩

检测业务上所承担的负载,如果这个业务本身的CPU利用率过高或者响应时间过长,可以对业务进行扩容。通过负载均衡,来提高响应时间。

二、Kubernetes的架构

Master作为中央管控节点,会与NODE进行一个连接,把希望状态或者想执行的命令下发给Master,Master会把这些命令或者状态下发给相应节点,这是最终的执行。

1、Kubernetes的架构一Master

四个主要组件:

  • API Server: 处理API操Kubernetes中所有组件会与API Server进行连接,组件与组件一般不进行独立的连接,都依赖API Server进行消息传送

  • Controller:控制器,用于完成对集群状态的管理

  • Scheduler:调度器,完成调度的操作

  • etcd:分布式的存储系统,API Server所需要的源信息都被放在其中

2、Kubernetes的架构一Node

一个Pod运行一个或者多个容器,真正去运行这些Pod的组件是Kubeletes,每个应用负载会以pod的运行状态提交到组件中,向节点下发信息

3、Kubernetes的架构–例子

用户可以通过UI或者CRI提交一个Pod给Kubelet进行一个部署,而pod首先会通过UI或者CRI提交给Kubernetes,下一步API Server会把信息写入存储系统,Scheduler得到信息有一个pod需要调度,Scheduler会根据其进行决策

三、Kubernetes的核心概念与API

1、核心概念-Pod
  • 最小的调度以及资源单元

  • 由一个或者多个容器组成

  • 定义容器运行的方式(Command、环境变量等)

  • 提供给容器共享的运行环境(网络、进程空间)

2、核心概念-Volume
  • 声明在Pod 中的容器可访问的文件目录

  • 可以被挂载在Pod中一个(或者多个)容器的指定路径下

  • 支持多种后端存储的抽象

  • 本地存储、分布式存储、云存储…

3、核心概念-Deployment
  • 定义一组Pod的副本数目、版本等

  • 通过控制器(Controller)维持Pod的数目

  • 自动恢复失败的Pod

  • 通过控制器以指定的策略控制版本

  • 滚动升级、重新生成、回滚等

4、核心概念-Service
  • 提供访问一个或多个Pod 实例的稳定访问地址

  • 支持多种访问方式实现

  • ClusterlP

  • NodePort

  • LoadBalancer

  • 其他:hostNetWork、hostPort、ingress

5、核心概念一Namespaces
  • 一个集群内部的逻辑隔离机制(鉴权、资源额度)

  • 每个资源都属于一个Namespace

  • 同一个Namespace 中的资源命名唯一

  • 不同Namespace 中的资源可重名

6、APl一基础知识
  • HTTP +JSON/YAML

  • kubectl

  • Ul

  • curl

  • /api/v1/namespaces/$NAMESPACE/pods/$NAME

7、APl -Label
  • 一组Key:Value

  • 可以被selector所查询

  • select color=red

  • 资源集合的默认表达形式

  • 例如Service 对应的一组Pod

四、尝试一下 Kubernetes 吧

1、安装Minikube
  • 安装VirtualBox

https : / / www .virtualbox.org / wiki/ Downloads

  • 安装MiniKube(中国版)

https :/ / yq.aliyun.com/ articles/ 221687

  • 启动MiniKube

minikube start --vm-driver virtualbox

2、尝试一些命令吧!

1.提交一个ngnix deployment

kubectl apply -f https: / / k8s.io/examples/application/deployment.yaml

2.升级ngnix deployment

kubectl apply -f https: / /k8s.io/examples/application/deployment-update.yaml

3.扩容ngnix deployment

kubectl apply -f https: / / k8s.io/examples/application/deployment-scale.yaml

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值