Kubernetes

打印 上一主题 下一主题

主题 529|帖子 529|积分 1587

前言

随着软件架构的调整,应用部署的方式

 应用部署的工具也由Ansible/Puppet/Saltstack(应用编排工具)----->Docker(应用程序容器化)----->Kubernetes集群(容器编排工具)演变;
一、Kubernetes概念

当1个容器出现了故障,如何立刻启动另1个容器来替代当前容器,继续对外提供服务;(无容错能力,仅出现单点故障,既造成整个服务雪崩)
当并发量大的时候,无法动态横向扩展容器的数量,当并发量降低时,无法动态减少容器数量;(动态扩缩)
以上这些容器管理的问题统称为容器编排问题;
Kubernetes简称K8s,是一种基于容器技术的分布式应用部署方案,可以解决容器编排问题;

K8s本质是一组服务器集群,有以下优势

  • 自我修复:一旦某1个容器退出,会在1秒能重新启动另1个容器进行替换;
  • 弹性伸缩:可以根据现实需求,动态调整K8S集群中容器的数量;
  • 服务发现:服务和服务直接可以通过自动发现的机制,找到自身依赖的服务;
  • 负载均衡:如果1个服务绑定了多个容器,那么多个容器可以自动实现该服务的负载均衡;
二、Kubernetes组件

Kubernetes由一下组件构成,协同工作完成容器编排任务;
1.Master节点

包含API Server、Scheduler、ControllerManager三个守护进程;
2.Node(worker)节点:


  • Kubelet(集群代理)用于Master和Node之间的通信,Node用于运行多个Pod
  • Docker容器引擎真正的启动容器;
  • Kube-proxy:管理service和pod之间的iptables通信规则
3.Pod


  • Pod相当于虚拟化部署架构中的1个虚拟主机;
  • 容器是应用的外壳, Pod是容器的外壳;
  • Pod是K8S调动的最小单元;
  • 1个Pod中可以包含多个容器,其中只有1个容器为主容器,其他容器辅助主容器完成更多功能;
  • 辅助容器称为Sidecar(边车、摩托车挎斗);
  • 在1个Pod中,容器之的存储卷是彼此共享的;
  • 通常情况下1个Pod只有1个容器;
4.LabelSelector


  • 由于K8s集群中容器是可以动态调整的,所以容器的IP地址会经常发生变化,但Pod标签是固定的, 标签可以标记和分类Pod;
  • 标签选择器可以帮助我们查询到指定分类的Pod,便于我们对Pod进行批量管理;
5.NameSpace


  • 1个K8s集群中可以运行几千个Pod,Pod之间是可以直接通过网络通信的;
  • 使用NameSpace名称空间分割K8s集群中的pod,起到K8s集群中多租户网络隔离的作用;
三、Kubernetes集群搭建

Kubernetes主要有3种搭建方式

  • Minikube:用于搭建单节点Kubernetes集群的工具(开发人员学习);
  • Kubeadmin:用于快速搭建Kubernetes集群(运维人员学习);
  • 二进制源码安装:从K8s官网下载每个组件的源码,依次进行安装,此方式对于理解K8s组件组件更有效(生产环境);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
参考

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表