美文网首页
Kubernetes入门

Kubernetes入门

作者: bernierayxu | 来源:发表于2019-04-27 00:19 被阅读0次
1. kubernetes和swarm的应用区别是?

答:swarm适合于中小企业,例如小于1000的集群或者小于1万的应用实例,大型企业则会选择k8s。因为swarm的功能较为简单。

2. 企业中传统的虚拟机开发的方式是什么流程?

答:搭建vmware esxi,登陆到远程之后,在虚拟环境中创建多个虚拟服务器,此流程很像云服务商。


vmware esxi
创建虚拟服务器
3. 为什么要使用容器技术,相对传统的虚拟机开发而言?
  • 容器技术是一个进程,容易开启和关闭。
  • 容器技术运行速度更快。
  • 容器技术保证运行环境和依赖保持一致。
  • 容器技术容易移植。
  • 虚拟机开发是独占CPU,磁盘,内存等,例如宿主机有100个GB的磁盘,单个虚拟机需要30个GB的磁盘,则该宿主机可以同时开启3个虚拟机;但是容器可以共享这些磁盘,不需要预先分配30个GB的磁盘,可以密集部署很多轻量级容器。


    对比
4. 对于计算机的硬件,我们应该关注哪几个点?
  • 内存
  • CPU
  • 磁盘
  • 网卡带宽
5. k8s的基本思想是什么?

docker适合单独的微服务部署,所以会带来部署的数量很多,对于服务治理和服务监控提出挑战。k8s的基本思想是将他们进行分组,然后再进行管理。其思路和企业等思路是一致的。k8s就是一个帮助管理和编排docker的工具。k8s原本是google开源的,其前身是Borg,google本身还在用。

6. k8s的优点有什么?
  • 可以管理公有云,私有云和混合云的linux服务器。
  • 省去重复的部署步骤。
7. kubernetes可以通过什么来快速安装?

kubeadm

8. k8s,docker和用户之间是什么关系?

用户负责定义任务,docker执行任务,k8s负责调度。

9. k8s需要什么其他组件来发挥最大作用?
  • 注册表,通过Atomic注册表或者Docker注册表实现。
  • 联网,通过Openswitch或者智能边缘路由等实现。
  • 遥测(即自我监控),通过heapster,kibana,hawkular和elastic等实现。
  • 安全性,通过LDAP,SELinux,RBAC和OAUTH等项目以及多租户来实现。
  • 自动化,通过Ansible来实现。
  • 服务,通过自带预建模板来提供。
10. k8s最基本的架构是什么样的?
  • 有master和node两种节点,前者相当于管理节点,后者是工作节点
  • 客户端通过kubectl来访问master节点,master通过kubelet来访问node节点。
  • 每个node节点里面有多个pods,每个pod相当于很多docker服务的集合,是k8s的基本调度单位。
  • master节点很重要,一般来说需要做高可用,高可用的话需要符合2n+1的规律,n=1的时候,最小也要3台机器,所以master至少部署3台机器才能保证高可用。


    架构
  • 客户端通过api来访问master节点
  • 其中etcd可以理解为类似于redis的存在,存储key-value,存储的内容包括各种controller的信息,scheduler的信息等。k8s通过查看etcd里面现有的资源状态(Object Status),再对比期望的资源状态(Object Spec)来做自动控制和自动纠正的高级功能。
  • controller是负责检测健康的中心。
  • scheduler是负责资源调度的中心
  • api server是负责安全验证和提供api服务的中心


    master节点详解
  • image registry是node节点管理镜像的地方
  • kubelet管理node节点的数据,容器以及pod的生命周期,健康检测。
  • kube-proxy负责发现服务(即通信功能),做负载均衡。对外(互联网)可以提供服务访问。
  • fluentd是网络组件,协调容器与容器之间的ip网段信息。


    node节点详解
    架构详情
    加入DNS服务,使得服务器可以通过除了IP的方式来访问
11. pod的架构是什么样的?
  • 首先有pause,是根容器;根容器里面的服务共享IP,共享加载券Volume。所以根容器的服务之间可以相互通讯,集群内的各种pod之间也可以进行通讯(利用TCP/IP,所以要求所有pod必须在一个网段,例如172.12..,只要前两个一致就算一个网段,可以ping这个地址),但是有些是pod在私有云,有些pod在公有云,所以需要通过虚拟网络技术Flannel或者Open vSwitch来搭建IP通讯。
  • 然后才是用户定义的容器


    架构
12. label的作用是什么?
  • label是key-value pair
  • 首先要给服务贴上label,然后再给node贴上label,当某个服务挂了需要重新自动调度的时候,k8s可以根据label来自动找到对应的合适的来分配。
13. Replication Controller是什么?
  • 定义了预期pod的副本数(replicas)
  • 用于筛选pod的label selector
  • 当pod的副本数小于预期的时候,用于创建pod的模板(template)
  • Deployment是Replication Controller的升级版本,描述了当前pod部署的情况。
14. Service是什么?
service定义
定义
15. Volume是什么?

Volume就是加载的多个容器可以共享的数据文件夹(实际也是文件)。但是和docker的不一样,k8s的数据文件夹定义在pod上面,可以支持Gluster,Ceph等分布式文件存储系统。

16. Namespace是什么?

给多个服务贴上namespace,使得他们在被共享的同时可以在权限上有所分别,从而实现多租户的功能。

17. Annotation是什么?

Annotation从本质上来说和label是一样的,但是label是系统定义的,annotation是用户定义的。

18. harbor是什么?

harbor是企业级的私有镜像仓库。

19. 如何写一个架构方案,请参看下载的k8s集群架构方案。

相关文章

网友评论

      本文标题:Kubernetes入门

      本文链接:https://www.haomeiwen.com/subject/fslygqtx.html