1 - Kubernetes

Kubernetes(简称K8s,用8代替8个字符“ubernete”)是Google开源的一个容器编排引擎。
目前最为广泛且流行的容器编排调度系统,也是现在用来构建云原生应用编排的最佳平台。
已成为在私有云,公共云以及混合云环境中大规模部署容器化应用程序的事实标准。

  • 支持自动化部署:自动化容器的部署和复制
  • 大规模可伸缩:随时扩展或收缩容器规模
  • 应用容器化管理:容器间的负载均衡、升级版本、弹性替换等等

使用Kubernetes,只需一个yaml格式的部署文件,使用kubectl命令与就Kubernetes API交互,就可以部署多层容器的完整集群。
目前所有云原生应用基本上都会基于 Kubernetes API 去构建。

1.1 实用的特性

  • 一致性:是指在 Kubernetes 上构建的应用可以无缝的迁移到任何环境里,不论公有云、私有云还是跨云。
  • 可扩展性:是指把 Kubernetes 的插件机制运用到任何环境里,通过 Kubernetes 这些插件都可以实现自定义化。
  • 自我修复功能:包括健康检查、故障的自动恢复、自动扩展等机制,这些对于系统运行至关重要。

1.2 官方信息

2 - 基础概念

2.1 - Kubernetes组成

Pod

  • K8s 的基础构建模块,是最小的构建单元,用于处理 Volume、Secret 以及容器的相关配置
  • 一个 Pod 包含一个或一组容器和卷,通常每个 Pod 只包含一个容器
  • 如果容器之间的联系非常紧密并且需要直接共享资源,可以考虑将一组容器放在同一个Pod
  • 同一个Pod里的容器共享同一个网络命名空间,即相同的IP地址和Port空间,可以使用localhost互相通信
  • 运行在 Worker Node 中,非持久的,会在宕掉时自动重启
  • 通过使用持久化的卷类型来持久化容器数据
  • 同一个Pod里的容器共享存储, 当Kubernetes挂载volume到Pod, 本质上是将volume挂载到Pod中的每一个容器

特别说明:

  • Kubernetes管理的对象是Pod,而不是直接管理容器,即便Pod中只有一个容器。
  • 也就是说,Kubernetes只可以看到Pod,而Pod也只可以看到容器。

Node

  • 承载Pod的单独物理机或虚拟机,作为Kubernetes worker,为容器提供一些必要的环境,比如存储、网络等。
  • 每个节点都运行如下Kubernetes关键组件:
  • Kubelet:主节点代理
  • Kube-proxy:Service使用其将链接路由到Pod,如上文所述
  • Docker或Rocket:Kubernetes使用的容器技术来创建容器

Service

  • 定义了外界访问一组特定Pod的方式以及访问这些Pod的策略
  • 为Pod提供负载均衡,在一定数量的Pod之间均衡流量
  • 通过Label找到Pod组

Master

  • 每一个集群拥有一个Kubernetes Master,主要负责集群的状态维护,也给集群提供一个对外访问的入口
  • API server(即 kube-apiserver):K8s 控制的前端,提供可以用来和集群交互的REST端点,也就是暴露 K8s API
  • Scheduler(即 kube-scheduler):为新 Pod 选择 Node
  • Replication Controller:使用Pod模板创建同一个容器的多份拷贝,确保任意时间都有指定数量的Pod“副本”在运行

ETCD

  • 用于集群状态数据的分布式键值存储。

2.2 Kubernetes总体架构

3 - 参考信息

K8S - 容器编排工具Kubernetes简介的更多相关文章

  1. Docker(二):理解容器编排工具Kubernetes内部工作原理

    一.Kubernetes是什么 要说到Docker就不得不说说Kubernetes.当Docker容器在微服务的环境下数量一多,那么统一的,自动化的管理自然少不了.而Kubernetes就是一个这样的 ...

  2. kubernetes(k8s)容器编排工具基础概念

    Kubernetes (K8s): 中文社区:https://www.kubernetes.org.cn/replication-controller-kubernetes 官网:https://ku ...

  3. K8s(一)----容器编排工具基础概念

    kubernetes(k8s)容器编排工具基础概念 Kubernetes (K8s): 中文社区:https://www.kubernetes.org.cn/replication-controlle ...

  4. K8s容器编排

    K8s容器编排 Kubernetes(k8s)具有完备的集群管理能力: 包括多层次的安全防护和准入机制 多租户应用支撑能力 透明的服务注册和服务发现机制 内建智能负载均衡器 强大的故障发现和自我修复能 ...

  5. 使用容器编排工具docker swarm安装clickhouse多机集群

    1.首先需要安装docker最新版,docker 目前自带swarm容器编排工具 2.选中一台机器作为master,执行命令sudo docker  swarm init [options] 3,再需 ...

  6. docker-compose (单机版的容器编排工具)

    类似于ansible剧本 yml 格式 要使用这个编排工具,必须先安装 yum install -y docker-compose cd wordpress/ vi docker-compose.ym ...

  7. 容器编排工具之Docker-compose

    前文我们聊了下docker私有仓库harbor的搭建,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13061984.html:在上一篇博客的末尾,我们简单聊了 ...

  8. Docker系列10—容器编排工具Docker Compose详解

    本文收录在容器技术学习系列文章总目录 1.Docker Compose 概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用Compose文件来配置 ...

  9. Docker - 容器编排工具 compose 之安装

    准备 首先,在使用和安装 docker compose之前,我们应该确保我们已经安装了 docker engine. 安装 官网上面有好多种安装方式,由于我们现在是在使用Docker, 个人感觉应该以 ...

随机推荐

  1. Oracle 异步IO 优缺点

    一.Oracle在Linux下使用异步IO配置 最近在测试Oracle的时候,很想测试下使用异步IO的性能.但是异步IO是需要专门配置的,否则的话,容易遇到很著名的“ORA-01578: ORACLE ...

  2. loj #6485. LJJ 学二项式定理 单位根反演

    新学的黑科技,感觉好nb ~ #include <bits/stdc++.h> #define ll long long #define setIO(s) freopen(s". ...

  3. ZR#1008

    ZR#1008 解法: 直接预处理出来执行完一个完整的串可以到达的位置,然后算出重复的次数直接乘在坐标上,最后处理一下余下的部分就行了. CODE: #include<iostream> ...

  4. ZR#1015

    ZR#1015 解法: 我们需要求得, $ g_i $ 表示长度为的最长不下降子序列个数. 设 $ f_{i,j} $ 表示统计第前$ i $ 个数字,得到最长不下降子序列末端为 $ j $ . 显然 ...

  5. Tkinter 之记事本项目实战

    一.效果图 二.文件 链接:https://pan.baidu.com/s/1CUkfWpfH8t2GSJyy5hYv-A 提取码:5yvn 后续可能做一些功能扩展,有需要源码的可以评论联系我!!!

  6. 使用ListView应该注意的地方

    android:clipToPadding和android:clipChildren http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/201 ...

  7. 如何选题?| 什么样的科学问题 | 研究项目才是有意义的?| scientific method

    搞科研,尤其是生命科学,经常会觉得自己做的东西是坨屎,没有任何意义. 在硕博的时候这种感觉会非常强烈,一个是自己思考能力不足:二是你的项目不是你设计的,不懂个中缘由,只执行的话就会很无聊,找不到意义感 ...

  8. 都2019年了,Java为什么还在坚持多线程不选择协程?

    都2019年了,Java为什么还在坚持多线程不选择协程? - 知乎 https://www.zhihu.com/question/332042250/answer/734051666

  9. Android 调用WCF实例详解

    上篇文章已经对Web Service及其相关知识进行了介绍(Android开发之WebService介绍 ),相信有的朋友已经忍耐不住想试试在Android应用中调用Web Service.本文将通过 ...

  10. 数据包分析中Drop和iDrop的区别

    数据包分析中Drop和iDrop的区别   在数据包分析中,Drop表示因为过滤丢弃的包.为了区分发送和接受环节的过滤丢弃,把Drop又分为iDrop和Drop.其中,iDrop表示接受环节丢弃的包, ...