尚硅谷-kubernetes

目录

  • 一、kubernetes概述
    • 1、kubernetes基本介绍
    • 2、kubernetes 功能和架构
  • 二、kubeadm 方式搭建kubernetes集群
    • 1、**kubeadm 部署方式是什么?**
    • 2、**安装要求**
    • 3、**最终目标**
  • 三、二进制方式搭建kubernetes集群
  • 四、kubernetes 集群 YAML 文件详解
    • 1、yml文件基本语法
    • 2、yml文件组成部分
    • 3、常用字段
    • 4、如何快速编写yml文件
  • 五、kubernetes集群命令行工具
  • 六、kubernetes 核心技术-Pod
    • 1、pod基本概念
    • 2、pod存在的意义
    • 3、pod的实现机制
    • 4、pod镜像拉取策略
    • 5、pod资源限制
    • 6、pod重启机制
    • 7、pod的健康检查
    • 8、pod调度策略
      • 8.1 pod调度的流程
      • 8.2 影响调度的属性

一、kubernetes概述

1、kubernetes基本介绍

kubernetes,简称 K8s,是用 8 代替 8 个字符“ubernete”而成的缩写
kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效

2、kubernetes 功能和架构

2.1 K8s 功能

  • 自动装箱
    对应用运行环境的资源进行配置后要求自动部署应用容器

  • 自我修复
    当容器失败时,会对容器进行重启
    当所部署的node节点有问题时,会对容器进行重新部署和调度

  • 水平扩展
    通过简单的命令、用户 UI 界面或基于 CPU 等资源使用情况,对应用容器进行规模扩大或规模剪裁

  • 服务发现
    用户不需使用额外的服务发现机制,就能够基于 Kubernetes 自身能力实现服务发现和负载均衡

  • 滚动更新

  • 版本回退
    可以根据应用部署情况,对应用容器运行的应用,进行历史版本即时回退

  • 密钥和配置管理

  • 存储编排

  • 批处理

2.2 应用部署架构分类

(1) 无中心节点架构
GlusterFS

(2) 有中心节点架构
HDFS
K8S

2.3 k8s 集群架构
尚硅谷-kubernetes_第1张图片

Master Node : k8s 集群控制节点,对集群进行调度管理,接受集群外用户去集群操作请求

  • API server:集群统一入口,以restful方式,交给etcd存储
  • schedule:节点调度,选择node节点应用部署
  • Controller Manager:处理集群中常规后台任务,一个资源对应一个控制器
  • etcd: 存储系统,保存集群中相关的数据

Worker Node:集群工作节点,运行用户业务应用容器

  • kubelet:master派到worker的节点代表,管理本机容器
  • kube-proxy:提供网络代理,实现负载均衡操作

K8s核心概念
1、pod

  • 最小部署单元
  • 一组容器的集合
  • 共享网络
  • 生命周期是短暂的

2、controller

  • 确保预期的pod副本数量
  • 确保所有的node运行同一个pod
  • 一次性任务和定时任务

3、service

  • 定义一组pod的访问规则

二、kubeadm 方式搭建kubernetes集群

单master集群
尚硅谷-kubernetes_第2张图片

多master集群
尚硅谷-kubernetes_第3张图片

1、kubeadm 部署方式是什么?

kubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的工具,这个工具能通过两条指令完成一个 kubernetes 集群的部署:

第一、创建一个 Master 节点, kubeadm init
第二, 将 Node 节点加入到当前集群中 $ kubeadm join

2、安装要求

3台虚拟机,操作系统centos7
硬件配置:2GB 或更多 RAM,2 个 CPU 或更多 CPU,硬盘 30GB 或更多
集群中所有机器之间网络互通
可以访问外网,需要拉取镜像

3、最终目标

(1) 在所有节点上安装 Docker 和 kubeadm
(2)部署 Kubernetes Master
(3)部署容器网络插件
(4)部署 Kubernetes Node,将节点加入 Kubernetes 集群中
(5)部署 Dashboard Web 页面,可视化查看 Kubernetes 资源

三、二进制方式搭建kubernetes集群

四、kubernetes 集群 YAML 文件详解

1、yml文件基本语法

2、yml文件组成部分

尚硅谷-kubernetes_第4张图片
尚硅谷-kubernetes_第5张图片

3、常用字段

必须存在的属性
尚硅谷-kubernetes_第6张图片

4、如何快速编写yml文件

1) 使用 kubectl create命令生成yml文件

kubectl create deployment web --image=nginx -o yaml --dry-run=client

尚硅谷-kubernetes_第7张图片
2)使用 kubectl get命令导出yml文件

kubectl get deploy nginx -o=yaml --export > my2.yaml

尚硅谷-kubernetes_第8张图片

五、kubernetes集群命令行工具

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

六、kubernetes 核心技术-Pod

1、pod基本概念

Pod 是 k8s 系统中可以创建和管理的最小单元
Pod 是由一个或多个 container 组成
一个pod中的容器共享网络命名空间
pod是短暂的

Pod 是 Kubernetes 的最重要概念,每一个 Pod 都有一个特殊的被称为”根容器“的 Pause容器。Pause 容器对应的镜 像属于 Kubernetes 平台的一部分,除了 Pause 容器,每个 Pod还包含一个或多个紧密相关的用户业务容器
尚硅谷-kubernetes_第9张图片

2、pod存在的意义

1)创建容器使用docker,一个docker对应一个容器,一个容器运行一个应用程序
2)Pod是多进程设计,运行多个应用程序
3)pod的存在为了亲密性应用

  • 两个应用之间进行交互
  • 网络之间调用
  • 两个应用需要频繁调用

3、pod的实现机制

1)共享网络
在这里插入图片描述
2)共享存储
尚硅谷-kubernetes_第10张图片

4、pod镜像拉取策略

尚硅谷-kubernetes_第11张图片

5、pod资源限制

尚硅谷-kubernetes_第12张图片

6、pod重启机制

尚硅谷-kubernetes_第13张图片

7、pod的健康检查

尚硅谷-kubernetes_第14张图片

8、pod调度策略

8.1 pod调度的流程

8.2 影响调度的属性

1) pod资源限制对pod调用产生影响
尚硅谷-kubernetes_第15张图片
2)节点选择器标签
尚硅谷-kubernetes_第16张图片
给节点打上标签

给节点打上标签
kubectl label node k8snode1 env_role = dev
显示节点标签
kubectl get nodes k8snode1 --show-labels

3)节点亲和性影响pod调度
尚硅谷-kubernetes_第17张图片

4)污点和污点容忍
尚硅谷-kubernetes_第18张图片
尚硅谷-kubernetes_第19张图片

污点容忍 : 即使节点设置为污点,也有可能被调度到
尚硅谷-kubernetes_第20张图片

你可能感兴趣的:(#,kubernetes,kubernetes)