相关文章推荐
打酱油的槟榔  ·  什么是API 网关(API ...·  3 月前    · 
冷冷的皮带  ·  Install Tools | ...·  2 年前    · 
冷冷的皮带  ·  Kubernetes ...·  2 年前    · 
冷冷的皮带  ·  认证Kubernetes ...·  2 年前    · 

一、Kubernetes是什么?

(一)读音

了解一个新事物,最先学会都是怎么读,不然以后会一直读错下去,到时候说出去可能就会被人嘲笑。
Kubernetes,读音是[kubə’netis],翻译成中文就是“库伯奈踢死”。当然了,也可以直接读它的简称:k8s。为什么把Kubernetes读作k8s,因为Kubernetes中间有8个字母,所以简称为k8s。

(二)历史

认识任何东西最靠谱的都是去官网看具体的介绍,Kubernetes官网地址:https://kubernetes.io/。有兴趣的小伙伴可以自己去逛逛。
在这里插入图片描述
从官网的介绍可以看到,说Kubernetes有15年的应用经验。这里可能有人疑惑了,Kubernetes不是最近几年才火的吗?是的,Kubernetes是最近几年才火的,但是火之前肯定要有应用到地方。这个地方就是google,google内部已经成熟应用了,所以才开源了,对这部分历史有兴趣的小伙伴可以自行百度,这里就不多说了。

(三)Kubernetes是什么?

Kubernetes是什么?这个是基础,可以从官网看到对Kubernetes的介绍,Kubernetes一个开源的系统用于自动化部署、扩展和管理应用程序。按照最流行的说法就是Kubernetes是容器编排和管理的一种技术,是云原生落地的底层基础设施。

对Docker有过了解的小伙伴一定听说过,docker-compose和docker-swarm,docker-compose是单机的容器管理技术,docker-swarm是多机版本的容器管理技术。Docker在2016年的1.12的版本内置了docker-swarm用来进行多机版本的容器管理,其实就是为了跟k8s进行竞争。但是到了2018年底,k8s胜出了,其市场占有率和相关开源资料的人数以及更新频率远远高于docker-swarm。有兴趣的小伙伴可以去github上找到对应的开源项目,能看到参与的人数和更新的频率。

到这里,其实对k8s的理解还是对容器编排和管理,这个慢慢的看下去就会慢慢的了解。

二、Kubernetes的核心组件以及架构图

(一)Pod

既然k8s是对容器进行编排和管理,那么熟悉docker的小伙伴一定知道container这个东西了,不知道的小伙伴自行百度吧,这里container不作为重点介绍,百度一下很快就了解大致是个什么东西。
container是docker里的操作单位,k8s有自己的最小操作单位,那就是Pod。一个Pod可以包含一个或者多个container,Pod中的container共享存储和网络,这是官方定义的。
在这里插入图片描述

(二)ReplicaSet

多个Pod由谁进行管理呢?那就是ReplicaSet,ReplicaSet通过Selector来管理Pod。
在这里插入图片描述

(三)Deployment

Pod和ReplicaSet的状态如何维护和检测呢?这时候就用到了Deployment
在这里插入图片描述

(四)Label

相同的Pod或者有关联的Pod怎么进行区分的,可以用Label对Pod打一个标签,标签一样的Pod是同一类。
在这里插入图片描述

(五)Service

同一类的Pod属于同一个Service
在这里插入图片描述

(六)Node

Pod运行在机器上,机器就是Node
在这里插入图片描述

(七)集群

多台Node组成集群,集群的大致如下:
在这里插入图片描述
一个集群中一般都会区分master node和worker node,外界想跟集群进行交互,那么首先跟master node交互,然后master node再跟worker node交互。

(八)需要的组件

上面的图由上到下,大致应该有个印象。
那么集群要想配合完成工作,总需要不同的组件来进行协调,不同的组件干不同的事。

1、Kubectl

需要一个操作集群的客户端跟集群打交道,这就是kubectl

2、认证授权

kubectl发送请求到达master node,然后再分配给worker node来创建Pod等。kubectl发送请求给master node需要进行认证授权。

3、APIServer

请求达到master node以后谁来接收,APIServer。

4、Scheduler

APIServer收到请求以后调用哪个worker node来创建Pod,Container,需要有调度策略。

5、Controller Manager

Scheduler通过策略,真正要分发请求到不同的worker node上创建内容,具体就是由Controller Manager负责。

6、Kubelet

worker接收到创建请求以后,由kubelet调用Docker Engine创建对应的容器,这里就能看出来Node节点上需要有Docker Engine,不然无法创建容器。

7、DNS

8、Dashboard

监控面板检测整个集群的状态。

9、ETCD

集群的数据存储需要用到ETCD分布式存储。

(九)整体架构图

根据上述可以大致总结成以下的图:
在这里插入图片描述

官网也有类似的图:https://kubernetes.io/docs/concepts/architecture/cloud-controller/
在这里插入图片描述

(十)业内常见的环境搭建方式

可能有人看到需要那么多东西,想如果一个个搭建得多长时间,而且中间涉及那么多组件,万一有一个有问题得调多长时间,其实不用担心,肯定会有开源爱好者想到这个问题,然后想出各种办法来解决这个问题的。

1、最难的搭建方式,一个个组件搭建

https://github.com/kelseyhightower

2、最简单的搭建方式,在线搭建

网址 :https://labs.play-with-k8s.com/,缺点是有使用时间限制

3、云上搭建

https://github.com/kubernetes/kops

4、企业级解决方案CoreOS

https://coreos.com/tectonic/

5、Minikube

搭建一个单机版k8s,适合在本地学习使用
官网 :https://kubernetes.io/docs/setup/learning-environment/minikube/
GitHub :https://github.com/kubernetes/minikube

6、kubeadm

搭建多节点的集群:
https://github.com/kubernetes/kubeadm

总结:其实搭建k8s集群的方式很多,但是适合自己搭建使用的只有第六种方式比较靠谱,当然其他的自己也可以试试,例如第一种。当然企业用的可能就是企业级的解决方案,有钱就行,后面将尝试使用kubeadm搭建k8s集群。

本篇文章只是大致介绍一下k8s以及其关键的组件,有个大致的认识,后面会一点点深入介绍的,有问题之处欢迎指出。

一、Kubernates是什么?(一)读音了解一个新事物,最先学会都是怎么读,不然以后会一直读错下去,到时候说出去可能就会被人嘲笑。Kubernates,读音是[kubə’netis],翻译成中文就是“库伯奈踢死”。当然了,也可以直接读它的简称:k8s。为什么把Kubernates读作k8s,因为Kubernates中间有8个字母,所以简称为k8s。(二)历史认识任何东西最靠谱的都是去官网看具体的介绍,Kubernates官网地址:https://kubernetes.io/。有兴趣的小伙伴可以自 这个其实和硅谷的人起名有关系,他们有一个坏习惯,就是喜欢把一个单词首字母+跳过的字母数来进行缩写,目的是让爷爷奶奶们读不懂,比如亚马逊的Algorithms被缩写成A9,而 kubernetes 缩写为 k8s ,意思就是k后面跳过8个字母后到s,就变成了 k8s 官方原文是: K8s is an abbreviation derived by replacing the
kubectl Kubernetes 的一个命令行管理工具,可用于 Kubernetes 上的应用部署和日常管理。本文列举了 9 个常见的 kubectl 命令,并总结了一些使用技巧,希望可以帮助系统管理员简化管理工作。 对于刚开始使用命令行工具的开发者,最保险的方法是提出问题(读取操作),而不是发出命令(写入操作),所以从使用 get 命令开始是个不错的选择。 Kubectl get 使用 get 命令可以获取当前集群中可用的资源列表,包括: Namespace Deploymen
原文链接地址:阳明的博客 有很多人不知道 kubernetes 应该怎么发音,包括我之前也读错了,正确的发音是[kubə’netis],重音在第三个音节,读音:库伯耐踢死,我们可以在 github issue 上找到相关讨论:github issue。 那么为什么 kubernetes 又叫 k8s 呢? 这个其实和硅谷的人起名有关系,他们有一个坏习惯,就是喜欢把一个单词首字母+跳过的字母数来进行缩...
PreparedStatement 的 setDate 方法设置 java.sql.Date 日期 实现通过JDBC向oracle数据库中插入时间类型数据。 主要通过 PrepareStatement 的 setDate 方法。 创建v_emp表的代码如下(示例): //1.创建表 @Test public void create() { Connection conn=ConnectionFactory.getConnection(); Statement st=null; try {
作者| 阿里巴巴资深技术专家、CNCF 9个 TCO 之一 李响 一、什么是 Kubernetes Kubernetes ,从官方网站上可以看到,它是一个工业级的容器编排平台。 Kubernetes 这个单词是希腊语,它的中文 翻译 是“舵手”或者“飞行员”。在一些常见的资料中也会看到“ks”这个词,也就是“ K8s ”,它是通过将 8 个字母“ubernete ”替换为“8”而导致的一个缩写。
这里写自定义目录标题 k8s 官方文档 翻译 k8s 官方文档 翻译 最近在搞 k8s ,但发现 k8s 方面的文档很少, k8s 中文网的文档更是残缺不全。于是自己试着 翻译 和整理了一下 k8s 的文档。完成度90%左右,由于是搜集+自己 翻译 ,所以有些地方可能会不准确,还有一小部分未完成,欢迎广大网友进行补充。哪一篇未完成可以参考提交记录。 k8s 镜像下载安装可以参考另一篇博客https://blog.csdn.net/o...
Kubernetes 中文文档地址:http://docs. kubernetes .org.cn/ Kubernetes 是开源的容器集群管理平台,可对容器集群自动化部署、自动扩缩容、维护等。 对开发人员来说:可快速部署应用、快速扩展应用、无缝对接新应用、节省和优化硬件资源地使用。 特点:可移植、可扩展、自动化。 容器的优势: - 快速创建/部署应用:与VM虚拟机相比,容器镜像的更易创建。 - 持续开发、集成和部署:提供可靠且频繁的容器镜像构建/部署,并使用快速和简单的回滚(由于镜像不可变性)。
### 回答1: educoder mysql数据库 初识 是一门介绍MySQL数据库的课程。MySQL是一种开源的关系型数据库管理系统,广泛应用于Web应用程序的开发中。本课程主要介绍MySQL的基本概念、安装配置、数据类型、表操作、数据查询等内容,帮助学习者快速掌握MySQL数据库的基础知识。 ### 回答2: MySQL是一款开源关系型数据库管理系统,广泛应用于WEB应用程式的开发中。eduocer MySQL数据库 初识 是帮助初学者了解MySQL数据库管理系统的基本知识和操作。MySQL数据库管理系统采用了模块化的结构,可以轻松地维护和管理大规模的、高性能的数据库。 MySQL数据库管理系统主要包括以下基本模块: 1.连接器:连接器允许用户登录MySQL数据库,并与数据库进行通信。连接器的主要工作是验证用户的身份,以及安全地建立和关闭连接。 2.查询缓存:查询缓存可以缓存数据查询结果,以加速查询操作。查询缓存可以提高数据库系统的性能,因为当用户查询数据时,MySQL不需要执行相同的查询操作。 3.分析器:分析器的主要功能是分析用户的查询请求,并生成查询执行序列。 4.优化器:优化器的主要功能是对查询进行优化处理,以尽可能快地生成查询执行序列。 5.执行器:执行器的主要功能是执行查询操作,并提供数据查询结果。 MySQL数据库管理系统的架构使它成为了一种高效、可扩展、可靠的数据库管理系统。通过eduocer MySQL数据库 初识 课程,初学者可以了解MySQL数据库的基本知识和操作,并能够应用这些知识和操作来构建和管理自己的数据库。最终,所有的学习和应用都有助于构建高性能和高效率的WEB应用程序。 ### 回答3: 初识 educoder mysql数据库,我们必须首先了解MySQL数据库的概念和特点。MySQL是一个开源的关系型数据库管理系统,因其稳定性、快速性、安全性和高可靠性而被广泛应用。 在educoder上学习MySQL数据库,需要首先掌握以下几个方面: 1. 数据库结构 MySQL数据库采用了关系型数据库的形式,它由多个数据库、表、行、列和索引等组成。数据库是一组相关数据的集合,而表则是数据库中的数据组成部分,行和列则用于描述数据在表中的存储格式和结构。索引则是用于提高数据库查询效率的一种数据结构。 2. SQL语言 SQL语言是MySQL数据库的核心语言,包括创建、读取、更新、删除和查询等多种操作。学习SQL语言需要了解其基本语法和语义,包括SELECT、FROM、WHERE、GROUP BY、HAVING和ORDER BY等关键词的用法。 3. 数据库设计 在使用MySQL数据库时,需要对数据进行合理的设计,包括数据的存储结构、表的设计和数据类型的选择等。合理的数据库设计可以提高数据的存储效率和查询效率。 4. 数据库应用 MySQL数据库广泛应用于Web应用开发、企业管理和数据分析等领域。在educoder上,我们可以学习如何在MySQL数据库中开发Web应用、管理企业数据和进行数据分析等。 总之, 初识 educoder MySQL数据库需要我们掌握MySQL数据库的概念和特点、SQL语言的基本语法和数据设计、数据库应用的实际操作等方面。只有深入了解MySQL数据库的基本原理和应用技巧,我们才能更好地应用MySQL数据库完成各种数据处理和应用开发工作。