读书笔记-Kubernetes权威指南:从Docker到Kubernetes实践全接触.docx

读书笔记-Kubernetes权威指南:从Docker到Kubernetes实践全接触.docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

1.1从一个简单的例子开始

将创建好的RC文件发布到Kubernetes集群中:kubectlcreate-fmysql-rc.yaml

在创建好mysql-rc.yaml文件后,为了将它发布到Kubernetes集群中,我们在Master上执行命令:

创建一个与MySql相关的RC,yaml文件中kind对应value为:ReplicationController;创建一个与MySQL相关的kubernetesService,yaml文件中kind对应value为:Service;

其中,是Service的服务名(ServiceName);port属性则定义了Service的虚端口;spec.selector确定了哪些Pod副本(实例)对应本服务。类似地,我们通过kubectlcreate命令创建Service对象。

通过kubectl指令查看Service:kubectlgetsvc

运行kubectl命令查看刚刚创建的Service:

根据yaml文件(和spec.ports)创建MySQLService后,Kubernetes系统会自动为MySQL服务分配一个ClusterIp和spec.port;

可以发现,MySQL服务被分配了一个值为43的ClusterIP地址。随后,Kubernetes集群中其他新创建的Pod就可以通过Service的ClusterIP+端口号3306来连接和访问它了。通常,ClusterIP是在Service创建后由Kubernetes系统自动分配的,其他Pod无法预先知道某个Service的ClusterIP地址,因此需要一个服务发现机制来找到这个服务。

k8sService中spec.type=NodePort,——表明该service开启了NodePort方式的外网访问模式;spec.ports.nodeport=30001——将宿主机的30001端口映射到当前服务的虚端口上;

type=NodePort和nodePort=30001的两个属性表明此Service开启了NodePort方式的外网访问模式。在Kubernetes集群之外,比如在本机的浏览器里,可以通过30001这个端口访问myweb(对应到8080的虚端口上)。

1.2Kubernetes的基本概念和术语

Kubernetes为每个资源对象都增加了通用属性字段——Annotations,用来存放资源对象不断引入的新属性;

为此,Kubernetes为每个资源对象都增加了类似数据库表里备注字段的通用属性Annotations,以实现方法1的升级。以Kubernetes1.3版本引入的Pod的InitContainer新特性为例,一开始,InitContainer的定义是在Annotations中声明的,如下面代码中粗体部分所示,是不是很不美观

Master——每个Kubernetes集群中的管理和控制节点,所有的控制指令都通过Master具体执行;

Kubernetes里的Master指的是集群控制节点,在每个Kubernetes集群里都需要有一个Master来负责整个集群的管理和控制,基本上Kubernetes的所有控制命令都发给它,它负责具体的执行过程,我们后面执行的所有命令基本都是在Master上运行的。Master通常会占据一个独立的服务器(高可用部署建议用3台服务器),主要原因是它太重要了,是整个集群的“首脑”,如果它宕机或者不可用,那么对集群内容器应用的管理都将失效。

Kubernetes集群中的其他节点——Node;Master分配工作负载到Node节点上;Node上的关键进程:1.kubelet——负责Pod对应容器的创建、启停等任务;2.kube-proxy——实现KubernetesService的通信与负载均衡机制;3.DockerEngine(docker)——Docker引擎,负责本机的容器创建和管理工作;

与Master一样,Node可以是一台物理主机,也可以是一台虚拟机。Node是Kubernetes集群中的工作负载节点,每个Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机时,其上的工作负载会被Master自动转移到其他节点上。在每个Node上都运行着以下关键进程。

查看某个Node的详细信息:kubectldescribenodenode_name

然后,通过kubectldescribenodenode_name查看某个Node的详细信息:

k8s中,为什么集群中一个Pod里的容器可以与另外主机上的Pod容器能够直接通信?1.k8s通过虚拟二层网络技术保证了在底层网络

您可能关注的文档

文档评论(0)

meow9x + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档