欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

kubernetes初识

程序员文章站 2023-04-02 20:18:51
文章目录1. kubernetes概述1.1 kubernetes核心组件2. kubernetes简单架构图3. 使用kubernetes的优缺点3.1 优点3.2 缺点4. 参考文档 最近项目中使用到了kubernetes,把自己在使用的过程遇到的问题以及kubernetes相关组件的使用整理一下,争取每周分享一篇博客。同时也希望大佬们对文档的错误地方和不足之处,给出批评和建议。1. kubernetes概述 &n...


       最近项目中使用到了kubernetes,把自己在使用的过程遇到的问题以及kubernetes相关组件的使用整理一下,争取每周分享一篇博客。同时也希望大佬们对文档的错误地方和不足之处,给出批评和建议。

1. kubernetes概述

         kubernetes是一个容器编排工具,相当于是管理容器的上层应用。像docker容器都是运行在物理机器或者虚拟机上的。对容器的管理需要人为管理,这样既不方便也不能充分的利用机器的资源,不能够物尽其用。而kubernetes可以更好的管理容器,合理的分配机器资源。

           一个K8s集群是由分布式存储(etcd)、服务节点和控制节点(Master)构成的。所有的集群状态都保存在etcd中,Master节点上则运行集群的管理控制模块。Node节点是真正运行应用容器的主机节点,在每个node节点上都会运行一个Kubelet代理,控制该节点上的容器、镜像和存储卷等

1.1 kubernetes核心组件

  • etcd:保存了整个集群的状态
  • apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制
  • controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
  • scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
  • kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理
  • Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI)
  • kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡
  • kube-dns:负责为整个集群提供DNS服务,进行服务发现
  • Ingress Controller:为服务提供外网入口
  • Heapster:提供资源监控
  • Dashboard:提供GUI

2. kubernetes简单架构图

      下面我简单的看一下kubernetes一个简单的架构图
kubernetes初识

master和node都是对应的物理机或者虚拟机

  • master

    master是kubernetes的管理者,相当于是整个集群的大脑。集群的所有操作都通过master来完成。master进行node的管理,监视每一个node的资源使用情况,根据资源的情况,对node上的容器进行管理。

  • node

    node是集群中启动容器的节点。一个node对应一个物理机或者虚拟机。每一个node上启动的容器都是通过master来调度的。

3. 使用kubernetes的优缺点

3.1 优点

  • 故障迁移:当某一个node节点关机或挂掉后,node节点上的服务会自动转移到另一个node节点上,这个过程所有服务不中断。这是docker或普通云主机是不能做到的

  • 资源调度:当node节点上的cpu、内存不够用的时候,可以扩充node节点,新建的pod就会被kube-schedule调度到新扩充的node节点上

  • 资源隔离:创建开发、运维、测试三个命名空间,切换上下文后,开发人员就只能看到开发命名空间的所有pod,看不到运维命名空间的pod,这样就不会造成影响,互不干扰。传统的主机或只有docker环境中,登录进去就会看到所有的服务或者容器,因为采用容器,进程之间互不影响。

  • 安全:不同角色有不同的权限,查看pod、删除pod等操作;RBAC认证增加了k8s的安全

  • 负载均衡:k8s可以更快的更新新版本,打包应用,更新的时候可以做到不用中断服务,服务器故障不用停机,从开发环境到测试环境到生产环境的迁移极其方便。

3.2 缺点

以下缺点是在实际使用中遇到的

  • 资源消耗严重:如果使用集群,势必需要多个物理机或者虚拟机,至少需要三个以上的机器(8c,16g),如果机器过少,部署kubernetes集群就需要耗掉的大半的资源。
  • 网络复杂:使用kubernetes,如果需要集群外部访问时,需要拥有一定的网络技术基础,才能够使网络通信达到最优。对于tcp长连接通信支持不是很友好。

4. 参考文档

https://www.cnblogs.com/cnblx/p/11653152.html.

https://kubernetes.io/zh/docs/home/.

本文地址:https://blog.csdn.net/youngZ_H/article/details/107427789

相关标签: 容器 kubernetes