其他分享
首页 > 其他分享> > 1.k8s介绍

1.k8s介绍

作者:互联网

1.历史和现状

Laas 基础设施平台服务 --代表厂商 阿里云

Paas 平台及服务 --新浪 (k8s) docker 是paas 的标准

Saas 软件及服务

1、发展经历

以前:mesos apache 分布式资源管理框架 2019-5 twitter > kubernetes

Docker swarm 2019-07 阿里云宣布 docker swarm 剔除

Kubernetes google 10年容器话基础框架 borg go语言对borg进行重新编写

特点:

轻量级(消耗的资源比较少)

开源

弹性伸缩

负载均衡:IPVS(IP虚拟服务器)

适合人群:软件工程师,测试工程师 ,运维工程师 ,软件架构师 ,项目经理

云原生的定义:

实际上,云原生是一条最佳路径或者最佳实践。更详细的说,云原生为用户指定了一条低心智负担的、敏捷的、能够以可扩展、可复制的方式最大化地利用云的能力、发挥云的价值的最佳路径。

因此,云原生其实是一套指导进行软件架构设计的思想。按照这样的思想而设计出来的软件:首先,天然就“生在云上,长在云上”;其次,能够最大化地发挥云的能力,使得我们开发的软件和“云”能够天然地集成在一起,发挥出“云”的最大价值。

所以,云原生的最大价值和愿景,就是认为未来的软件,会从诞生起就生长在云上,并且遵循一种新的软件开发、发布和运维模式,从而使得软件能够最大化地发挥云的能力。说到了这里,大家可以思考一下为什么容器技术具有革命性?

其实,容器技术和集装箱技术的革命性非常类似,即:容器技术使得应用具有了一种“自包含”的定义方式。所以,这样的应用才能以敏捷的、以可扩展可复制的方式发布在云上,发挥出云的能力。这也就是容器技术对云发挥出的革命性影响所在,所以说,容器技术正是云原生技术的核心底盘。

2. 知识图谱

介绍说明:前世今生 kubernetes 框架 kubernetes关键字含义

基础概念:什么是pod 控制器类型 k8s网络通讯模式

kubernetes:构建k8s集群

资源清单:资源掌握资源清单的语法编写pod掌握pod 的生命周期***

pod控制器:掌握各种控制器的特点以及使用定义方式

服务发现(servece):掌握svc(交换虚拟链路) 原理及其构建方式

存储:掌握多种存储类型的特点 ,并且能够在不同环境中选择合适的存储方案(自己的见解)

调度器:掌握调度器原理 , 能够根据要求把pod定义到想要的节点运行

集群安全机制:集群的认证 鉴权 访问控制 , 原理及其流程

helm:类型linux里面的yum包管理工具掌握HELM原理 , HELM模板自定义,HELM部署一些常用的插件

运维 : 修改kubeadm达到证书可用期限为10年 能够构建高可用状态

服务器分类

高可用集群副本数据最好是 》=3奇数个

查看 k8s api支持版本的文档 https://kubernetes.io/docs/reference/

通过api 查看各个控制器的支持版本

kubectl api-versions

api-resources

可以通过查看api-resources来查看受支持的资源。

这里的资源包括Kubernetes自带的,和用户自建的CRD
kubectl api-resources 

第三列和第五列就可以看到title为APIVERSIONKIND,其实到此就已经可以明确如何对应使用资源了。

kubectl explain

通过kubectl explain {kind_name}可以参考到某个kind资源拥有的字段以及对应的apiVersion

查看资源支持所有字段

kubectl explain { kind_name } --recursive

如:kubectl explain { kind_name } --recursive

因为太长这里就不列出来了。

查看具体字段里的子字段

kubectl explain { kind_name }.字段名1.字段名2

其中从左往右是父子关系,如:deployment.spec.selector

当在自己写yaml文件时,没有参考示例,可以使用这些命令来摸索

3.组件说明

etcd:官方将它定位成一个可信赖的分布式键值存储服务 ,它能够为整个分布式集群存储一些关键数据 , 协助分布式集群的正常运转

推荐在kubernetes 集群中使用etcdv3 ,v2 版本已在kubernetsv1.11中弃用

server端安装:

apiserver:所有服务访问的统一入口

crontrollermanager:维持副本期望数目

scheduler:负责介绍任务 ,选择合适的节点进行分配任务

etcd:键值对数据库, 存储k8s集群所有重要信息(持久化)

kubelet:直接跟容器引擎交互实现容器的生命周期管理

kube-proxy:负责写入规则至iptables ,IPvs实现服务映射访问的

coreDNS:可以为集群中的svc创建一个域名IP的对于关系解析

DASHBOARD:给k8s集群提供一个B/s结构访问体系

INGRESS CONTROLLER:官方只能实现四层代理 , ingress 可以实现七层代理

fedetation:提供一个可以跨几圈中心多个k8s统一管理

Prometheus :提供k8s集群的监控能力

elk:提供k8s 集群日志统一分析接入平台

4.云原生

4.1发展史

首先从第一个要的问题,那就是“什么是云原生?”云原生、CNCF 都是目前非常热门的关键词,但是这些技术并不是非常新鲜的内容。

4.2 云原生的现状

  1. 云原生基金会 —— CNCF;
  2. 云原生技术社区,比如像 CNCF 目前正式托管的 20 多个项目共同构成了现代云计算生态的基石,其中像 Kubernetes 这样的项目已经成为了世界第四活跃的开源项目;
  3. 除了前面两点之外,现在全球各大公有云厂商都已经支持了 Kubernetes。此外,还有 100 多家技术创业公司也在持续地进行投入。现在阿里巴巴也在谈全面上云,而且上云就要上云原生,这也是各大技术公司拥抱云原生的一个例子。

五、各个版本支持情况说明

标签:原生,CNCF,Kubernetes,介绍,集群,版本,k8s
来源: https://www.cnblogs.com/syuee/p/15057822.html