0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Kubernetes是什么

汽车电子技术 来源:码农与软件时代 作者: 码农与软件时代 2023-02-15 10:25 次阅读

一、Kubernetes是什么?

2014年,Google开源一个PAAS平台,命名为Kubernetes。

其目标是管理大规模服务(容器)集群,解决人们对大规模容器的部署、升级、回滚带来的复杂性问题,实现在不停服务情况下的应用管理,以便最大可能地把精力集中在业务开发上。

Kubernetes以声明式方式进行容器部署,也就是只要告诉Kubernetes要做什么,不需要告之如何去做。

二、应用是如何部署和运行的?

我们在使用容器技术时,应用便打包在容器中,以容器为粒度进行操作,运行时体现为一个进程。

Kubernetes认为一个微服务可能由多个容器(进程)共同提供,便将多个容器看作一个组,看似豆荚,称为 Pod ,也被称为服务实例。Pod是Kubernetes最小调度单位。

一个应用运行时,可能需要N个服务实例(Pod)。如果某个服务实例出现异常或宕机,需要维持N个服务实例。这些工作由 ReplicaSet(副本集) 来做,也就是ReplicaSet能够保证始终有N个Pod在运行。(注:除 ReplicaSet --无状态外,还有DaemonSet、StatefulSet和Job等)

如果应用需要发布新版本,则需要“创建新版本的Pod,并替换旧版本的Pod”。这个工作由Deployment来做。Deployment会用新版本规范创建新ReplicaSet,新ReplicaSet创建新Pod数量会逐渐提高,旧ReplicaSet对应的Pod数量同步逐渐减少。也就是Deployment--ReplicaSet--Pod。

我们可以通过YAML文件来进行应用的部署,例如:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: rss-site
  labels:
    app: web
spec:
  replicas: 2
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: front-end
          image: nginx
          ports:
            - containerPort: 80
        - name: rss-reader
          image: nickchase/rss-php-nginx:v1
          ports:
            - containerPort: 88

表达的意思为:部署 rss-site Web应用,有2个副本,符合spec规范定义。这里涉及到selector的概念,表示的是对象通过Label进行关联,类似SQL中的select语句。

三、如何访问微服务?

Pod在应用的运行过程中,可能会进行弹性伸缩。

相应地,Pod对应的IP地址也可能会发生变化。不能因Pod的IP地址变化,而影响服务的访问。于是,引入Service概念,为一组相同功能的Pod提供统一的入口。

四层Service体现为IP地址和端口号。7层Service又引入了一个新的概念: Ingress ,可根据不同的URL请求转发到后端不同的Service。

那么如何访问Service呢?

对于集群内部的服务来说,有两种方法。一种方法是在服务(客户端)启动时,将服务(服务端)的信息以环境变量的形式注入到(客户端)中。另一种方法是使用虚拟DNS,服务(客户端)只要知道服务的名称即可,不需要关注服务的IP地址。

对于集群外部来说,也有两种方法。一种是通过物理服务器的IP地址和端口号,也就是NodeIP + Port的形式。另一种是在公有云场景下,通过公有云的负载均衡来实现。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 管理
    +关注

    关注

    2

    文章

    378

    浏览量

    26285
  • 容器
    +关注

    关注

    0

    文章

    481

    浏览量

    21876
  • kubernetes
    +关注

    关注

    0

    文章

    219

    浏览量

    8567
收藏 人收藏

    评论

    相关推荐

    Kubernetes的Device Plugin设计解读

    摘要: Kubernetes的生态地位已经确立,可扩展性将是其发力的主战场。异构计算作为非常重要的新战场,Kubernetes非常重视。而异构计算需要强大的计算力和高性能网络,需要提供一种统一的方式
    发表于 03-12 16:23

    理解和创建Kubernetes对象

    Kubernetes对象总结
    发表于 04-11 15:14

    Kubernetes经验总结

    Kubernetes学习笔记——24 允许外部访问
    发表于 06-18 12:10

    kubernetes集群配置

    基于v1104版本手动搭建高可用kubernetes 集群
    发表于 08-19 08:07

    浅析Kubernetes

    【k8s】Kubernetes基础概念
    发表于 09-27 09:11

    kubernetes部署与应用

    kubernetes运维笔记
    发表于 10-25 13:08

    Kubernetes平台中的日志收集方案

    十、Kubernetes平台中日志收集
    发表于 11-04 09:19

    kubernetes系统基本概念

    一文带你看透kubernetes 容器编排系统
    发表于 11-05 08:26

    Kubernetes资源配额的详细步骤

    Kubernetes资源配额
    发表于 03-06 10:18

    Kubernetes Dashboard实践学习

    关于Kubernetes Dashboard的实践学习
    发表于 04-10 14:09

    Kubernetes上运行Kubernetes

    开源容器编排引擎 Kubernetes 绝对有魔力。 一直以来,容器就是个很酷的概念,但事实上,广泛部署却十分困难。你几乎没法手动管理容器之间的网络、持续存储和数百个容器间的自动扩展
    发表于 09-30 13:33 0次下载
    在<b class='flag-5'>Kubernetes</b>上运行<b class='flag-5'>Kubernetes</b>

    Kubernetes API详解

    摘要:Kubernetes是Google开源的容器集群管理系统。它构建Ddocker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,本文节选自
    发表于 10-12 16:19 0次下载
    <b class='flag-5'>Kubernetes</b> API详解

    Kubernetes是什么,一文了解Kubernetes

    不香了。 这时候就需要我们的主角 Kubernetes 上场了,先来了解一下 Kubernetes 的基本概念,后面再介绍实践,由浅入深步步为营。 关于 Kubernetes 的基本概念我们将会围绕如下七点展开: 一、Docke
    发表于 12-21 13:40 1575次阅读
    <b class='flag-5'>Kubernetes</b>是什么,一文了解<b class='flag-5'>Kubernetes</b>

    Kubernetes特性有哪些?

    本文将介绍Kubernetes 的重要特性,这将有助于您更深入地了解 Kubernetes 的功能概念。
    的头像 发表于 05-12 16:16 654次阅读
    <b class='flag-5'>Kubernetes</b>特性有哪些?

    Commvault:护航Kubernetes,不止Kubernetes

    Kubernetes已经不再是只存在于路线图中的未来产品。事实上,几乎所有(94%)已经采用容器的企业都在使用Kubernetes,大多数(86%)企业甚至认为它对他们的运营至关重要。这并不令人意外,Kubernetes正在帮助
    的头像 发表于 07-07 14:42 301次阅读