美文网首页
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