简介
  它是一个全新的基于容器技术的分布式解决方案,基于强大的自动化机制解决传统系统架构中负载均衡和实施部署的问题,从而节省了30%开发成本,其次具有完备的集群能力,

包括服务注册、服务发现、故障的发现和修复、服务滚动升级、在线扩容、健康监测等能力。使用kubernetes可以是开发人员更多精力在业务实现上,同时全面的拥抱微服务架构

架构

基本概念和术语

1、master 集群的控制节点。

每个kubernetes集群都需要有个master节点负责整个集群的管理和控制。mater节点包括一组关键进程:

  • kube-apiserver 资源增删改查操作的入口,门卫
  • kube-controller-manage 所有资源的自动化控制中心,大总管
  • kube-schedule 负责资源的调度,调度室

2、node 集群的负载节点

每个node都会被master分配一定的工作负载(容器),当node停止运行后,master将容器调度到其他node,node节点包括一组关键进程:

  • kubelet 负责pod对应容器的创建、启停任务
  • kube-proxy 实现service通信和负载均衡
  • docker engine docker引擎负责本机的容器的创建和管理

常用命令

查看集群节点

kubectl get nodes

查看节点详细信息

kubectl describe node xxx

3、pod 资源调用基本单位

每个pod包含一个根容器(Pause) 容器和其他若干的业务容器,其中根容器的状态代表了容器整体的状态,业务容器共享Pause容器的IP和挂在的Volumn 。集群中每个pod都分配了唯一的IP,称pod ip , 一个pod里的多个容器共享Pod IP地址。

pod某个容器停止,k8s检测并重启该pod中的所有容器,所以适合一个POD中存放一个业务相关的容器

(1) Replication Controller (rc) 副本的数量在任何时刻都达到期望值

rc定义包括如下几个部分:

    • pod期待的副本数
    • 用于筛选目标Pod的label Selector
    • 副本数小于期望数量时候,创建新的副本‘

例子:定义了在kubenetes集群中 tier: frontend的副本只有一个

(2)Replication Set (rs) 下一代的RC

与RC区别是RS支持集合类型的Label Selector,而rc只支持基于等式的Label Selector。其他特点类型。

(3)Label和Label Selector

Label和Label Selector概念,kubernetes可以为对应的资源(pod,rc,service,deployment)设置key=value形式的label,简单理解就是分类。同时label selector可以根据指定的label与资源进行管理。例如service可以根据label selector选择具有对应label的pod进行负载均衡。label selector分为等式形式(env=test)和集合形式(env not in[test,dev])

(4)Deployment 在rs的基础上增加服务启动状态的控制和统计

在rc的基础上进行了一次升级,更好解决了服务编排问题。可以知道当前POD的“部署的进度”

常用命令

创建Deployment

kubectl create -f tomcat-deployment.yaml

查看信息’

kubectl get deployments

(5)service kubernetes的核心资源对象,POD RC RS等资源对象都是为service提供服务

kubernetes里面每个service就是我们所说的微服务。

    • rc的作用是保证Service的服务能力和服务质量始终处于预期的biaozhun
    • service与后端的副本集群通过label selector做负载均衡

service一旦创建,kubernetes就会自动为它分配一个可用的Cluster IP,并且整个service的生命周期内不会改变,service name 和 service ip DNS映射解决了服务发现问题

常用命令

查看service

kubectl get svc -n XXX

创建service

kubectl create -f xxx

Kubernetes入门的更多相关文章

  1. 微服务 + Docker + Kubernetes 入门实践 目录

    微服务 + Docker + Kubernetes 入门实践: 微服务概念 微服务的一些基本概念 环境准备 Ubuntu & Docker 本文主要讲解在 Ubuntu 上安装和配置 Dock ...

  2. 第一章 Kubernetes入门

    第一章 Kubernetes入门 kubernetes是基于容器技术的分布式架构领先方案,是一个完备的分布式系统支撑平台. kubernetes带来的好处:1)全面拥抱微服务:2)统可以随时随地整体“ ...

  3. Kubernetes入门(四)——如何在Kubernetes中部署一个可对外服务的Tensorflow机器学习模型

    机器学习模型常用Docker部署,而如何对Docker部署的模型进行管理呢?工业界的解决方案是使用Kubernetes来管理.编排容器.Kubernetes的理论知识不是本文讨论的重点,这里不再赘述, ...

  4. 浅入kubernetes(1):Kubernetes 入门基础

    目录 Kubernetes 入门基础 Introduction basic of kubernetes What Is Kubernetes? Components of Kubernetes Kub ...

  5. kubernetes入门实践

    k8s中文文档 k8s概念比较多,有什么概念的疑惑的推荐看k8s中文文档. me的环境 操作系统:centos7 docker:1.12.6 环境跟me的不一致?不要慌,基本大部分操作都是行的通的. ...

  6. Kubernetes 入门必备云原生发展简史

    作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使 "未来的软件一定是生长于云上的"这是云原生理念的最核心假设.而所谓"云原生",实际上就是在定义一条能 ...

  7. Kubernetes 入门-学习-nginx安装-dashboard安装

    一.入门 1.Kubernetes中文社区---http://docs.kubernetes.org.cn/ 2.Kubernetes集群组件: - etcd 一个高可用的K/V键值对存储和服务发现系 ...

  8. Kubernetes入门(一)——Kubernetes v1.18.5 安装部署

    Kubernetes的安装有两种方式:一是使用各个厂商封装的Kubernetes发行版,优点是可以一键安装部署,操作简单,缺点也很明显,若安装过程中某一步骤出现问题,很难定位处理:二是使用官方提供的k ...

  9. 第一篇:《Kubernetes 入门介绍》

    前言:本文是一篇 kubernetes(下文用 k8s 代替)的入门文章,将会涉及 k8s 的技术历史背景.架构.集群搭建.一个 Redis 的例子,以及如何使用 operator-sdk 开发 op ...

  10. Kubernetes 入门基础

    我们要学习 Kubernetes,就有首先了解 Kubernetes 的技术范围.基础理论知识库等,要学习 Kubernetes,肯定要有入门过程,在这个过程中,学习要从易到难,先从基础学习. 接下来 ...

随机推荐

  1. rails手脚架(scaffold)功能

    scaffold是一个高速开发rails应用的代码框架.能够使用一条命令实现CRUD操作. 1: 创建一个应用 rails new scaffoldapp cd scaffoldapp rails s ...

  2. Python——Code Like a Pythonista: Idiomatic Python

    Code Like a Pythonista: Idiomatic Python 如果你有C++基础,那学习另一门语言会相对容易.因为C++即面向过程,又面向对象.它很底层,能像C一样访问机器:它也很 ...

  3. 基于python的ardrone control源码分析与心得

    这里有一段python代码,可用于操控ardrone 2.0.实验室曾经借鉴用过,并添加了部分功能.如今复习一下,顺便理理python的相关知识点. #!/usr/bin/env python # A ...

  4. flask 框架 前端和后端请求超时问题

    部署模式 flask + Gunicorn + nginx 为什么要用Gunicorn + nginx ? 请看知乎大神们的回答:https://www.zhihu.com/question/3852 ...

  5. [原创]如何让freeswitch转发客户端自定义的INFO消息

    如何让freeswitch转发客户端自定义的INFO消息 英文概述: this article is about how to configure freeswitch to forward self ...

  6. Java中几种常见的NPE问题

    1.Map下的NPE 直接上代码: Map类集合K/V能不能存储null值的情况,如下表格: 2.foreach遍历集合删除元素 在遍历集合时对元素进行add/remove操作要使用Iterator, ...

  7. 使用pycharm手动搭建python语言django开发环境 - 使用git管理代码(二)

    在pycharm中打开项目,使用File->Version Control->Git.选中git的安装路径并点击确认. 2)在Version Control界面中,配置或新建一个git的主 ...

  8. C++ Primer(第五版)读书笔记 & 习题解答 --- Chapter 2

    Chapter 2.1 1. 数据类型决定了程序中数据和操作的意义. 2. C++定义了一套基本数据类型,其中包括算术类型和一个名为void的特殊类型.算术类型包含了字符.整型.布尔值以及浮点数.vo ...

  9. iOS视频压缩存储至本地并上传至服务器

    最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下. 这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的. 1.该方法没有对视频进行压缩,只是将视 ...

  10. Ordering Tasks UVA - 10305 图的拓扑排序

    John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...