k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明

一、k8s概述

kubernets,简称 K8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernets的目标是让部署容器化的应用简单且高效,Kubernets提供了应用部署,规划,更新,维护的一种机制。
传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。
新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在 build 或 relase 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境,便于监控和管理。

特点

  • 轻量级:资源消耗小
  • 开源
  • 弹性伸缩
  • 负载均衡:IPVS

架构

k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第1张图片
Master Node:
k8s 集群控制节点,对集群进行调度管理,接受集群外用户去集群操作请求;Master Node 由 API Server、Scheduler、ETCD 数据库和Controler MangerServer组成。
Worker Node:
集群工作节点,运行用户业务应用容器;Worker Node 包含 kubelt、kube proxy 和 ContainerRuntime。

运行流程

k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第2张图片

二、YAML文件概述

k8s 集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,我们把这种文件叫做资源清单文件。
YAML是一种标记语言,以数据做为中心,可读性高,用来表达数据序列的格式

基本语法

  • 使用空格做为缩进
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • 低版本缩进时不允许使用 Tab 键,只允许使用空格
  • 使用#标识注释,从这个字符一直到行尾,都会被解释器忽略

数据格式

  • 对象
  • 数组,使用”-“表示
spec:
  ports:
  - name: http
  • 纯量,单个不可再分的值
number: 3.14
isTrue: true

资源清单

  • 必需字段
    k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第3张图片
  • spce字段
    k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第4张图片
    k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第5张图片
    k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第6张图片
    k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第7张图片
  • 其他参数
    k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第8张图片

使用样例

创建Pod

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod-demo5
  namespace: testing
  #添加标签
  labels:
    app: nginx
    env: testing
spec:
  containers:
  - image: nginx:1.14-alpine
    imagePullPolicy: IfNotPresent
    name: nginx
    ports:
      - containerPort: 80
        hostPort: 8080
        name: web
        protocol: TCP

kubectl命令行

kubectl 是 Kubernets 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能进行容器化应用的安装部署。

语法说明

在这里插入图片描述

  • command:指定要对资源执行的操作,例如create、get、describe、delete
  • TYPE:指定资源类型,资源类型是大小写敏感的
  • NAME:资源名称,大小写敏感,不写则查询所有此类资源
  • flag:可选参数,如-n

使用kubectl --help查看帮助
k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第9张图片

命令分类

  • 基础命令
    k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第10张图片
  • 部署和集群管理命令
    k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第11张图片
  • 故障调试命令
    k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第12张图片
  • 其他命令
    k8s从入门到放弃(一):k8s概述、yaml详解、kubectl说明_第13张图片

你可能感兴趣的:(k8s,k8s,kubernetes,大数据)