深夜提醒

现在是深夜,建议您注意休息,不要熬夜哦~

🏮 🏮 🏮

新年快乐

祝君万事如意心想事成!

2024 桐庐半程马拉松
00:00:00
时间
0.00
距离(公里)
--:--
配速
--
步频
--
心率 (bpm)
--
配速
步频
|
share-image
ESC

Kubernetes 入门

说明

本文档基于 kubernetes 权威指南,我基于自己的看书理解整理的一份笔记。

为什么叫 k8s

Kubernetes 简称 k8s,它的名字起源于古希腊,是舵手的意思,其logo如下

它既像一张渔网又像一个罗盘。

kubernetes 是谷歌的开源产品,其实谷歌在很多年前就有个内部的容器管理工具,叫Brog。

外国的东西到了国内就喜欢被起一些奇奇怪怪的名字,比如苹果的系统 finder 到了国内就被叫撑了访达这么奇葩的名字,kubernetes 也是如此,国内都简称他为k8s。所以下面都叫k8s

什么是 kubernetes

kubernetes 是一个全新的基于容器技术的分布式架构的领先方案。Kunernetes 是一个开放的开发平台,没有限定任何的编程接口。Kubernetes 是一个完备的分布式系统支撑平台。Kubernetes 具有完备的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建只能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源调度机制,以及多粒度的资源配额管理能力。同时 Kubernetes 提供了完善的管理工具,这些工具涵盖了包括开发、部署测试、运维监控在内的各个环节。因此 Kubernetes 是一个全新的基于容器技术的分布式解决方案,并且是一个一站式的完备的分布式形同开发和支撑平台。

一个产品通常由多个组成,容器只是供一个应用服务的能力,需要把多个应用编排组合起来才能提供服务。Kubernetes 是自动化编排容器应用的开源平台,这些操作不仅包括部署、调度和节点集群件的扩展,还包括服务发现和配置服务等架构支持的基础能力,此外 Kubernetes 不仅支持 Docker ,还支持 Rocket 等不同的底层容器技术。

Kubernetes 是第一个将“一切皆服务,一切围绕服务运转”作为指导思想的创新型产品。

kubernetes 的基本知识

Service

k8s 中,Service (服务) 是分布式集群架构的核心,一个 Service 对象拥有如下特征:

  • 拥有一个指定的名称。
  • 拥有一个虚拟 IP (Cluster IP、Service IP或 VIP)以及端口号
  • 提供了某种远程服务能力
  • 能够被映射到提供这种服务能力的一组容器应用上。

Service 的服务进程都是基于socket的方式对外提供服务的。比如redis、http等服务

Pod

容器提供了强大的隔离功能,所以必须要把 Service 提供服务的这组进程放入容器中进行隔离,因此 Kubernetes 设计了 Pod,它是最小的部署单元。为了建立 Service 和Pod 的关系,k8s 首先给每个 Pod 贴上一个标签,比如给 mysql 贴个标签为name=mysql,php 贴个标签 name=php,然后给相应的 Service 定义标签选择器(Label Selector),比如mysql Service的label 的选择条件为name=mysql,则意味着该Service 要包含所有name=mysql的的pod上。

Pod运行在我们称之为节点(Node)的环境中,这个节点可以是物理机、虚拟机、公有云或私有云上的主机,同城一个节点运行上百个 Pod,其次每个 Pod 运行一个特殊的 pasue 的容器,其他容器则为业务容器,这些业务容器共享 pause 的容器的网络栈和 volume 挂在卷,因此数据通信更加高效,我们可以将一些密切相关的服务进放入一个 Pod中。

并不是每个 Pod 和他里面运行的容器都能被映射到一个 Service 中,只有那些提供服务的一组 Pod 才会被映射到一个服务。

集群

k8s 集群划分为一个master节点和一群工作节点(node),其中:

  • Master节点运行一组进程,包括kube-apiserver、kube-controller-manager和kube-scheduler,这些进程实现了集群资源的管理、Pod的调度、弹性伸缩、安全控制、系统监控和纠错管理等功能,并且这些都是自动化的完成的。

  • Node 作为集群中的工作节点,运行着真正的应用程序,在 node 上 k8s 管理最小的单元 Pod,它运行着 kubelet、kube-proxy 服进程,这些服务进程负责 Pod 的创建、监控、启动、重启和销毁以及实现软件模式的负载均衡。

RC

在k8s 集群中,只需要扩容的Service 关联的 Pod 创建一个 Replication Controller (RC) 则该Service 的扩容以至于后来的Service 升级等问题都能完成。

在一个 RC 定义文件中包含 3 个关键信息

  • 目标 Pod 的定义
  • 目标 Pod 需要运行的副本数量
  • 要监控的目标 Pod的标签

在定义好 RC 后,k8s 会通过定 RC 定义中的 label 筛选出对应的 Pod 实例并进行实时的监控其状态和数量。如果实例少于定义的副本数则会根据 RC 定义的 Pod 模板创建新的 Pod,无须人工干预,有了 RC 扩容只需要修改 RC 中的副本数就可以了。

文章作者:阿文
文章链接: https://www.awen.me/post/63468.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客
本文于 2018-03-02 21:04 发布,已超过半年(2935天),请注意甄别内容是否已过期。

评论

0 条评论
😀😃😄 😁😅😂 🤣😊😇 🙂🙃😉 😌😍🥰 😘😗😙 😚😋😛 😝😜🤪 🤨🧐🤓 😎🥸🤩 🥳😏😒 😞😔😟 😕🙁☹️ 😣😖😫 😩🥺😢 😭😤😠 😡🤬🤯 😳🥵🥶 😱😨😰 😥😓🤗 🤔🤭🤫 🤥😶😐 😑😬🙄 😯😦😧 😮😲🥱 😴🤤😪 😵🤐🥴 🤢🤮🤧 😷🤒🤕 🤑🤠😈 👿👹👺 🤡💩👻 💀☠️👽 👾🤖🎃 😺😸😹 😻😼😽 🙀😿😾 👍👎👏 🙌👐🤲 🤝🤜🤛 ✌️🤞🤟 🤘👌🤏 👈👉👆 👇☝️ 🤚🖐️🖖 👋🤙💪 🦾🖕✍️ 🙏💅🤳 💯💢💥 💫💦💨 🕳️💣💬 👁️‍🗨️🗨️🗯️ 💭💤❤️ 🧡💛💚 💙💜🖤 🤍🤎💔 ❣️💕💞 💓💗💖 💘💝💟 ☮️✝️☪️ 🕉️☸️✡️ 🔯🕎☯️ ☦️🛐 🆔⚛️🉑 ☢️☣️📴 📳🈶🈚 🈸🈺🈷️ ✴️🆚💮 🉐㊙️㊗️ 🈴🈵🈹 🈲🅰️🅱️ 🆎🆑🅾️ 🆘 🛑📛 🚫💯💢 ♨️🚷🚯 🚳🚱🔞 📵🚭 ‼️⁉️🔅 🔆〽️⚠️ 🚸🔱⚜️ 🔰♻️ 🈯💹❇️ ✳️🌐 💠Ⓜ️🌀 💤🏧🚾 🅿️🈳 🈂🛂🛃 🛄🛅🛗 🚀🛸🚁 🚉🚆🚅 ✈️🛫🛬 🛩️💺🛰️
您的评论由 AI 智能审核,一般1分钟内会展示,若不展示请确认你的评论是否符合社区和法律规范
加载中...

选择联系方式

留言反馈

😀😃😄 😁😅😂 🤣😊😇 🙂🙃😉 😌😍🥰 😘😗😙 😚😋😛 😝😜🤪 🤨🧐🤓 😎🥸🤩 🥳😏😒 😞😔😟 😕🙁☹️ 😣😖😫 😩🥺😢 😭😤😠 😡🤬🤯 😳🥵🥶 😱😨😰 😥😓🤗 🤔🤭🤫 🤥😶😐 😑😬🙄 😯😦😧 😮😲🥱 😴🤤😪 😵🤐🥴 🤢🤮🤧 😷🤒🤕 🤑🤠😈 👿👹👺 🤡💩👻 💀☠️👽 👾🤖🎃 😺😸😹 😻😼😽 🙀😿😾 👍👎👏 🙌👐🤲 🤝🤜🤛 ✌️🤞🤟 🤘👌🤏 👈👉👆 👇☝️ 🤚🖐️🖖 👋🤙💪 🦾🖕✍️ 🙏💅🤳 💯💢💥 💫💦💨 🕳️💣💬 👁️‍🗨️🗨️🗯️ 💭💤❤️ 🧡💛💚 💙💜🖤 🤍🤎💔 ❣️💕💞 💓💗💖 💘💝💟 ☮️✝️☪️ 🕉️☸️✡️ 🔯🕎☯️ ☦️🛐 🆔⚛️🉑 ☢️☣️📴 📳🈶🈚 🈸🈺🈷️ ✴️🆚💮 🉐㊙️㊗️ 🈴🈵🈹 🈲🅰️🅱️ 🆎🆑🅾️ 🆘 🛑📛 🚫💯💢 ♨️🚷🚯 🚳🚱🔞 📵🚭 ‼️⁉️🔅 🔆〽️⚠️ 🚸🔱⚜️ 🔰♻️ 🈯💹❇️ ✳️🌐 💠Ⓜ️🌀 💤🏧🚾 🅿️🈳 🈂🛂🛃 🛄🛅🛗 🚀🛸🚁 🚉🚆🚅 ✈️🛫🛬 🛩️💺🛰️