kubernetes(k8s)基础简介(特性,组件,作用)问题及答案

目录

#什么是k8s

#k8s的特性

#k8s组件有哪些

#Kubernetes核心概念

#简述master与node节点

#k8s中master与node组件的关系

#node节点与proxy的关系

#service与container(容器)的关系

#comtroller manager在k8s中起到的作用

#说出k8s集群三种IP

#集群三种IP的作用

#简述etcd及其特点

#无状态应用部署(Deployment)有状态应用部署(StatefulSet)的区别

#简述Kubernetes和Docker的关系?

#简述Kubernetes中什么是Minikube、Kubectl、Kubelet?

#kubelet的功能,作用是什么

#api-server的端口

#简述proxy原理

#k8s数据持久化的方式有哪些

#kubelet 监控 Node 节点资源使用是通过什么组件来实现的?

#k8s共享存储的作用

#使用k8s时可以采取哪些最佳安全措施

#k8s的负载均衡器


#什么是k8s

一个基于docker容器的云平台,K8S用于管理云平台中多个主机上的容器化的应用,Kubernetes是自动化容器操作的开源平台,这些操作包括容器编排,资源调度,弹性伸缩,均衡容灾,部署管理,服务发现等一系列功能。

#k8s的特性

Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了资源调度、部署管理、服务发现、扩容缩容、监控,维护等一整套功能。成为跨主机集群的自动部署、扩展以及运行应用程序容器的平台。

-自我修复

在节点故障时重新启动,替换,部署失败的容器,保证预期的副本数量;杀死健康检查失败的容器,并且在未准备好之前不会处理客户端请求,确保线上服务不中断。

-弹性伸缩

使用命令,UI或基于CPU使用情况进行自动快速地扩容缩容应用程序实例,保证业务高峰期时的高可用,当业务低峰时回收资源,减少成本

-自动部署和回滚

采用滚动更新策略更新应用,一次更新一个pod,而不是同时更新所有;若在更新时出现问题,将会滚更改,确保升级不影响业务运行

-机密和配置管理

管理机密数据和应用程序配置,不把敏感数据暴露在镜像里,提高敏感数据安全,并将常用数据配置存储在k8s中,方便应用程序使用

-存储编排

挂载外部存储系统,无论是本地还是公有云还是网络存储都作为集群资源一部分使用,提高存储灵活

-批处理

提供一次性任务,定时任务;满足批量数据处理和分析的场景。

#k8s组件有哪些

Master组件:

集群的控制平面,负责集群的决策

Kubectl:

客户端命令工具,整个操作系统的操作入口

apiserver-

集群的统一入口,各组件协调者,api提供了验证和授权

Etcd:

集群的状态存储,数据存储,服务发现和共享配置

Scheduler:

负责集群资源调度,按照预定的调度策略将pod调度到相应node节点

Controller-manager:

自动化控制中心,处理集群后台任务,实现弹性伸缩,动态扩容,滚动升级的核心

Node组件:工作负载节点,真正运行容器的机器

Kubelet:

负责维护容器的生命周期,即通过docker来管控pod,会按固定频率将节点状态上报给apiserver。

Proxy:

负责提供集群内部的服务发现,维护网络规则和负载均衡,做端口转发解决同意主机端口冲突问题。

Docker:

负责下载镜像和运行容器

Container:

运行服务和程序的载体,容器独立运行一个或一组应用,每个都是独立的

#Kubernetes核心概念

Controller:

控制器,通过它来实现对pod的管理,比如启动pod、停止pod、伸缩pod的数量等等;负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;其中分为:

Deployment:

无状态应用部署:提供了一种对 Pod 和 ReplicaSet 的管理方式

StatefulSet:

有状态应用部署:控制器;可以指定某个容器的删除更新等操作。

Replication Controller :

管理维护Replication Controller,确保预期的Pod副本数量

Service:

pod对外服务的统一入口,下面可以维护者同一类的多个pod

Label:

标签,用于对pod进行分类,

NameSpace:

命名空间,用来隔离pod的运行环境

Job:

一次性任务,运行完成后Pod销毁,不再重新启动新容器。还可以任务定时运行。

Cronjob:

定时任务,CronJob其实就是在Job的基础上加上了时间调度

Pod:

kubernetes的最小控制单元,容器都是运行在pod中的,一个pod中可以有1个或者多个容器

#简述master与node节点

Master:作为控制节点,对集群进行统一的调度和管理;比如所有的增加、删除、修改、查找容器都是在master上操作。

Worker Node:作为真正的工作节点,运行业务应用的容器;Node 由 Master 管理,Node 负责监控并汇报容器的状态,并根据 Master 的要求管理容器的生命周期。

#k8s中master与node组件的关系

Kubernetes的架构由一个master和多个node组成,master通过api提供服务,接受kubectl的请求来调度管理整个集群。 (kubectl:是 k8s 平台的一个管理命令。)

#node节点与proxy的关系

Kubernetes 是个管理平台,node上的 proxy 拥有提供真实服务公网 IP。客户端访问kubernetes 中提供的服务,是直接访问到 kube-proxy 上的。

#service与container(容器)的关系

service 则定义真实对外网提供的服务,一个 service 会对应后端运行的多个 container。没有service访问不到容器。

#comtroller manager在k8s中起到的作用

Controller Manager是Kubernetes所有资源对象的自动化控制中心,处理集群中常规后台任务,一个资源对应一个控制器,而Controller Manager就是负责管理这些控制器的。例如Replication controller (复制控制器)定义了有多少个 pod 或者容器需要运行,如果当前集群中运行的 pod 容器达不到配置的数量,replication controller 会调度容器在minion 上运行,保证集群中的 pod 数量。

#说出k8s集群三种IP

Node IP:Node节点的IP地址

Pod IP: Pod的IP地址

Cluster IP:Service的IP地址

#集群三种IP的作用

Node IP:

是K8s集群中节点的物理网卡IP地址,所有属于这个网络的服务器之间都能通过这个网络直接通信。这也表明K8s集群之外的节点访问K8s集群之内的某个节点或者TCP/IP服务的时候,必须通过Node IP进行通信

Pod IP:

是每个Pod的IP地址,他是Docker Engine根据docker0网桥的IP地址段进行分配的,通常是一个虚拟的二层网络。

Cluster IP:

结合Service Port组成一个具体的通信端口,单独的Cluster IP不具备通信的基础,并且他们属于Kubernetes集群这样一个封闭的空间。

#简述etcd及其特点

etcd是一个分布式,高可用,一致的key-value存储数据库,主要用于数据存储,共享配置和服务发现。

特点:完全复制-高可用-一致性-简单-安全-快速-可靠

#无状态应用部署(Deployment)有状态应用部署(StatefulSet)的区别

无状态应用部署:

提供了一种对 Pod 和 ReplicaSet 的管理方式,仅需描述好目标状态,Deployment controller 就会将 Pod 和ReplicaSet 的实际状态改变到目标状态。deployment 是用来管理无状态应用部署的,面向集群的管理,而不是面向一个不可变的个体。

有状态应用部署:

与无状态相同点是他们管理相同容器规范的Pod,不同的是,StatefulSet为pod创建一个持久的标识符,他可以在任何编排的时候得到相同的标识符。StatefulSet适用于具有以下特点的应用:

1,具有固定的网络标记(主机名)

2,具有持久化存储

3,需要按顺序部署和扩展 

4,需要按顺序终止及删除

5,需要按顺序滚动更新

#简述Kubernetes和Docker的关系?

Docker是开源容器引擎,一种轻量级的虚拟化技术。k8s是容器管理工具,用来管理容器pod的集合,k8s可以实现容器集群的自动化部署,自动扩缩容,维护等功能。

#简述Kubernetes中什么是Minikube、Kubectl、Kubelet?

Minikube:可以在本机轻松运行一个单节点k8s集群的工具。

Kubectl:一个命令行工具,可以使用该工具对集群进行管理控制。

Kubelet:一个代理服务,在每个节点上运行并使从服务器与主服务器通信。

#kubelet的功能,作用是什么

部署在每个node节点上

  1. 节点管理。Kubelet启动时会想apiserver进行注册,定向的向apiserver汇报节点信息,资源状态等,这样master就知道node节点的资源状态。
  2. Pod管理。维护node节点上pod的生命周期,当kubelet监听到master下发给自己的任务时,kubelet就会通过crl插件调动pod。
  3. 容器健康检查。pod中可以定义启动探针、存活探针、就绪探针等,我们最常用的就是存活探针、就绪探针,kubelet 定期调用容器中的探针来检测容器是否存活,是否就绪,如果是存活探针,则会根据探测结果对检查失败的容器进行相应的重启策略;
  4. Metrics Server资源监控。在node节点上部署Metrics Server用于监控node,而kubelet则通过Metrics Server获取所在节点及容器的上的数据。

#api-server的端口

8080是http的端口,6443是https的端口

#简述proxy原理

是service的透明代理兼负载均衡,核心功能是将Service的访问转发到后端的多个Pod上,

优势:

1)为大型集群提供更好的扩展性和性能。采用哈希表的数据结构,更高效;

2)支持负载均衡算法;

3)支持服务器健康检查和连接重试;

4)可以动态修改ipset的集合;

#k8s数据持久化的方式有哪些

1,EmptyDir(空目录):没有指定要挂载宿主机上的某个目录,直接由Pod内保部映射到宿主机上。

2,Hostpath:将宿主机上已存在的目录或文件挂载到容器内部。类似于docker中的bind mount挂载方式;

3,PersistentVolume(简称PV):基于NFS服务的PV,也可以基于GFS的PV。它的作用是统一数据持久化目录,方便管理,PVC是向PV申请应用所需的容量大小,K8s集群中可能会有多个PV,PVC和PV若要关联,其定义的访问模式必须一致。

#kubelet 监控 Node 节点资源使用是通过什么组件来实现的?

用Metrics Server提供核心指标,包括Node、Pod的CPU和内存的使用。

#k8s共享存储的作用

Kubernetes对于有状态的容器应用或者对数据需要持久化的应用,因此需要更加可靠的存储来保存应用产生的重要数据,以便容器应用在重建之后仍然可以使用之前的数据。因此需要使用共享存储;

#使用k8s时可以采取哪些最佳安全措施

1,确保容器本身安全

2,锁定容器linux内核

3,基于角色的访问控制

4,保持网络安全

#k8s的负载均衡器

内部负载均衡器: 自动平衡负载并使用所需配置分配容器;

外部负载均衡器: 将流量从外部负载引导至后端容器;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值