> 文档中心 > Kubernetes技术极速入门(一)---- 初次见面,请多多关照

Kubernetes技术极速入门(一)---- 初次见面,请多多关照


1.Kubernetes是什么?

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。

2.Kubernetes版本

Kubernetes版本表示为xyz,其中x是主要版本,y是次要版本,z是补丁版本,遵循语义版本控制术语。

简单来讲,kubernetes项目存在3类分支(branch),分别为master,release-X.Y,release-X.Y.Z

master

分支上的代码是最新的,每隔2周会生成一个发布版本(release),由新到旧以此为master-->alpha-->beta-->Final release,这当中存在一些cherry picking的规则,也就是说从一个分支上挑选一些必要pull request应用到另一个分支上。

release-X.Y

我们可以认为X.Y.0为稳定的版本,这个版本号意味着一个Final release。一个X.Y.0版本会在X.(Y-1).0版本的3到4个月后出现。

release-X.Y.Z

X.Y.Z为经过cherrypick后解决了必须的安全性漏洞、以及影响大量用户的无法解决的问题的补丁版本。

总体而言,我们一般关心X.Y.0(稳定版本),和X.Y.Z(补丁版本)的特性。

3.Kubernetes功能

自动装箱

自动修复

水平扩展

服务发现

滚动更新

版本回退

密钥和配置管理

存储编排

4.对于Kubernetes误解的更正

Kubernetes并不是传统的PaaS(平台即服务)系统。

Kubernetes不限制支持应用的类型,不限制应用框架。

Kubernetes支持不同负载应用,包括有状态、无状态、数据处理类型的应用。

Kubernetes不提供中间件(如message buses)、数据处理框架(如Spark)、数据库(如Mysql)或者集群存储系统(如Ceph)作为内置服务。但这些应用都可以运行在Kubernetes上面。

Kubernetes不部署源码不编译应用。持续集成的 (CI)工作流方面,不同的用户有不同的需求和偏好的区域,Kubernetes提供分层的 CI工作流,但并不定义它应该如何工作。

Kubernetes允许用户选择自己的日志、监控和报警系统。

Kubernetes不提供或授权一个全面的应用程序配置 语言/系统(例如,jsonnet)。

Kubernetes不提供任何机器配置、维护、管理或者自修复系统。

5.Node及Pod的支持

Node节点支持

早期版本管理100台
现版本管理2000台

pod管理支持

早期版本管理1000台
现版本管理150000台

6.应用部署架构分类

1.无中心节点架构
GlusterFS
2.有中心节点架构
HDFS
K8S

7.K8S集群架构

如下图
在这里插入图片描述

8.k8s集群架构节点角色功能

在这里插入图片描述

Master Node

集群控制节点,对集群进行调度管理,接受集群外用户去集群操作请求;
API Server,Scheduler,Cluster State Store(ETCD数据库)和Controller Manager Server组成

Worker Node

集群工作节点,运行用户业务应用容器;
包含kubeletContainer runtimekube-proxy

9.核心组件

在这里插入图片描述

Kubernetes主要由以下几个核心组件组成:

etcd

Kubernetes提供默认的存储系统,保存所有集群数据,使用时需要为etcd数据提供备份计划。

apiserver

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

controller manager

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

scheduler

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

kubelet

负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;

Container runtime

负责镜像管理以及Pod和容器的真正运行(CRI);

kube-proxy

负责为Service提供cluster内部的服务发现和负载均衡;

除了核心组件,还有一些推荐的Add-ons:

kube-dns

负责为整个集群提供DNS服务

Ingress Controller

为服务提供外网入口

Heapster

提供资源监控

Dashboard

提供GUI

Federation

提供跨可用区的集群

Fluentd-elasticsearch

提供集群日志采集、存储与查询

10.Kubernetes工作原理

1.我们通过kubectl向k8s Master发出指令。

2.kubernetes Master主要是提供API Server、Scheduler、Controller组件,接收kubectl的命令。

3.kubernetes Master主从Node节点获取Node的资源信息,并发出调度任务。

4.Node节点提供kubelet、kube-proxy,每个node节点都安装docker,是实际的执行者。

5.kubernetes不负责网络,所以一般是用flannel或者weave。

6.etcd负责服务发现和node信息存储。

11.Kubernetes集群部署工具

常见的部署方式

1.二进制源码包部署

(1)获取源码包

(2)部署节点和启动服务

Master节点部署
api-server
etcd
scheduler
controller manager
Worker节点部署
kubelet
kube-proxy
docker

(3)生成证书

http
https

2.使用kubeadm部署

(1)安装软件kubelet,kubeadm,kubectl,docker(每个节点)

(2)初始化集群

(3)添加node到集群

(4)证书自动生成

(5)集群管理系统以容器的形式,运行在master

(6)容器镜像由谷歌提供

这门课学习主要就是它的部署

传送阵

3.Minikube部署

传送阵

菜鸟说

1.一个简简单单的kubeadm部署,就把我定住了两天!Kubernetes,你为什么这么难!
2.真不知道怎么学了!学又学不进去!
3.坚持!坚持!熬到这么技术退休!我就可以不用学了!
在这里插入图片描述
感谢大家,点赞,收藏,关注,评论!

安全期查询