K8S篇(基本介绍)

目录

一、什么是Kubernetes?

二、Kubernetes管理员认证(CKA)

[1. 简介](#1. 简介)

[2. 考试难易程度](#2. 考试难易程度)

[3. 考试时长](#3. 考试时长)

[4. 多少分及格](#4. 多少分及格)

[5. 考试费用](#5. 考试费用)

三、Kubernetes整体架构

Master

Nodes

四、Kubernetes架构及和核心组件

五、Kubernetes各个组件及功能

[1. master组件](#1. master组件)

[1.1. kube-apiserver](#1.1. kube-apiserver)

[1.2. kube-controller-manager](#1.2. kube-controller-manager)

[1.3. kube-scheduler](#1.3. kube-scheduler)

[1.4. etcd](#1.4. etcd)

[2. node组件](#2. node组件)

[2.1. kubelet](#2.1. kubelet)

[2.2. kube-proxy](#2.2. kube-proxy)

[2.3. docker](#2.3. docker)

六、Kubernetes核心概念

[1. pod](#1. pod)

[2. controllers](#2. controllers)

[3. service](#3. service)

[4. storage](#4. storage)

[5. pollcies策略](#5. pollcies策略)

[6. 其他](#6. 其他)


一、什么是Kubernetes?

Kubernetes这个单词来自于希腊语,含义是 舵手 或 领航员;

Production-Grade Container Orchestration Automated container deployment, scaling, and

management

生产环境级别的容器编排

编排是什么意思?

  1. 按照一定的目的依次排列;
  2. 调配、安排;

Kubernetes,也称为K8S,其中8是代表中间"ubernete"的8个字符,是Google在2014年开源的一个容器编

排引擎,用于自动化容器化应用程序的部署、规划、扩展和管理,它将组成应用程序的容器分组为逻辑单元,以便

于管理和发现,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并

且高效,很多细节都不需要运维人员去进行复杂的手工配置和处理;

Kubernetes拥有Google在生产环境上15年运行的经验,并结合了社区中最佳实践;

K8S是 CNCF 毕业的项目,本来Kubernetes是Google的内部项目,后来开源出来,又后来为了其茁壮成长,捐

给了CNCF;

CNCF全称Cloud Native Computing Foundation(云原生计算基金会)

Kubernetes是采用Go语言开发的,Go语言是谷歌2009发布的一款开源编程语言;

二、Kubernetes管理员认证(CKA)

1. 简介

CKA全称Certified Kubernetes Administrator,是Linux基金会和Cloud Native Computing Foundation

(CNCF)官方推出的全球Kubernetes管理员认证,对于技术团队,CKA认证可以作为团队成员的技术能力的一

个考察标准,也可以作为整个团队对Kubernetes云平台的管理能力的有力证明;

2. 考试难易程度

考试只允查阅官方文档,在考试过程中你只能去

如果去了其它的网站,按作弊处理;

3. 考试时长

考试时间为3小时;

4. 多少分及格

CKA满分100分,66分及格;

5. 考试费用

美元:$300

人民币:¥2088

有一次免费重考的机会,一年后过期;

三、Kubernetes整体架构

Master

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

Master Node 由 API Server、Scheduler、ClusterState Store(ETCD 数据库)和 Controller 、

MangerServer 所组成;

Nodes

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

Nodes节点也叫Worker Node,包含kubelet、kube proxy 和 Pod(Container Runtime);

四、Kubernetes架构及和核心组件

API server是所有请求的唯一入口;

api server管理所有的事务,并把信息记录到etcd数据库中,etcd有一个自动服务发现的特性机制,etcd会搭建

有三个节点的集群,

实现三副本;

scheduler 调度器用来调度资源,查看业务节点的资源情况,确定在哪个node上创建pod,把指令告知给api

server;

控制管理器controller-manager管理pod;

pod可以分为有状态和无状态的pod,一个pod里最好只放一个容器;

api server把任务下发给业务节点的kubelet去执行;

客户访问通过kube-proxy去访问pod;

pod下面的不一定是docker,还有别的容器;

一般pod中只包含一个容器,除了一种情况除外,那就是elk,elk会在pod内多放一个logstash去收集日志;

五、Kubernetes各个组件及功能

1. master组件

1.1. kube-apiserver

kubernetes api,集群的统一入口,各组件之间的协调者,以restful api提供接口服务,

所有对象资源的增删改查和监听操作都交给apiserver处理后在提交给etcd存储记录;

1.2. kube-controller-manager

处理集群中常规的后台任务,一种资源对应一个控制器,controller-manager就是负责管理这些控制器的;

1.3. kube-scheduler

根据调度算法为新创建的pod选择一个node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同

节点上;

1.4. etcd

分布式键值存储系统,用户保存集群状态数据,比如pod、service等对象信息;

2. node组件

2.1. kubelet

kubelet时master在node节点上的代理agent,管理本node运行容器的生命周期,比如创建容器、pod挂载数据

卷、下载sercet、获取容器和节点状态等工作,kubelet将每个pod转换成一组容器;

2.2. kube-proxy

在node节点上实现pod的网络代理,维护网络规则和四层的负载均衡工作;

2.3. docker

容器引擎,运行容器;

六、Kubernetes核心概念

1. pod

最小部署单元;

一组容器的集合;

一个pod中的容器共享网络命名空间;

pod是短暂的;

2. controllers

replicaset:确保预期的pod副本数量;

deployment:无状态应用部署,比如nginx、apache,一定程度上的增减不会影响客户体验;

statefulset:有状态应用部署,是独一无二型的,会影响到客户的体验;

daemonset:确保所有node运行同一个pod,确保pod在统一命名空间;

job:一次性任务;

cronjob:定时任务;

3. service

防止pod失联;

定义一组pod的访问策略;

确保了每个pod的独立性和安全性;

4. storage

volumes

persistent volumes

5. pollcies策略

resource quotas

6. 其他

label:标签,附加到某个资源上,用户关联对象、查询和筛选;

namespaces:命名空间,将对象从逻辑上隔离;

annotations:注释;

Kubectl:k8s提供的终端控制命令;

Kubeadm:可以用来初始化或加入一个k8s集群;

相关推荐
景天科技苑1 小时前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
颜淡慕潇2 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
川石课堂软件测试4 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
昌sit!10 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
A ?Charis13 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
wclass-zhengge13 小时前
Docker篇(Docker Compose)
运维·docker·容器
茶馆大橘13 小时前
微服务系列五:避免雪崩问题的限流、隔离、熔断措施
java·jmeter·spring cloud·微服务·云原生·架构·sentinel
北漂IT民工_程序员_ZG14 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes
coding侠客14 小时前
揭秘!微服务架构下,Apollo 配置中心凭啥扮演关键角色?
微服务·云原生·架构