Kubernetes 常见问题

本文概述了Kubernetes作为容器化分布式系统的基石,其在解决企业痛点(如高效部署、环境一致性)中的作用,与Docker的关系,以及核心组件如Kubelet、Etcd和负载均衡的重要性。详细解析了ReplicaSet与ReplicationController的区别,并介绍了kubectl的命令行工具。
摘要由CSDN通过智能技术生成

1、什么是kubernetes?

(1)kubernete 是一个全新的基于容器技术的分布式领先架构

(2)kubernete 是一个开放的开发平台,不局限于任何一种语言,不论是C,Java,Python 编写的任何服务,最终都会被映射为kubernete的Server,并通过标准的TCP进行交互

(3)kubernete 是一个完备的分布式系统支撑平台

总结:kubernete是一个全新的基于容器技术的分布式架构解决方案,并且是一个一站式完备的分布式系统开发和支撑平台。

2、为什么使用kubernetes?

在当前,docker这门容器化技术已经被越来越多的公司所采用,从单机走向集群已经成为必然。而kubernetes作为当前被业界普遍认可和看好的机遇docker的大规模容器化分布式系统解决方案,得到了以谷歌为首的巨头们的大力宣传和推进。

3、为什么使用docker?

企业使用一项技术是为了解决当前企业环境中存在的某个痛点。目前整个软件行业存在着以下几个痛点。
(1)软件更新发布及部署低效,过程烦琐且需要人工介入。

(2)环境一致性难以保证。

(3)不同环境之间迁移成本太高。

Docker 在很大程度上解决了上述问题。

首先,Docker 的使用十分简单,从开发的角度来看就是“三步走”:构建、运输、运行。其中,关键步骤是构建环节,即打包镜像文件。但是从测试和运维的角度来看,那就只有两步:复制、运行。有了这个镜像文件,想复制到哪里运行都可以,完全和平台无关。

Docker 这种容器技术隔离出了独立的运行空间,不会和其他应用争用系统资源,不需要考虑应用之间的相互影响。

其次,因为在构建镜像时就处理完了服务程序对于系统的所有依赖,所以在使用时,可以忽略原本程序的依赖以及开发语言。对测试和运维人员而言,可以更专注于自己的业务内容。

最后,Docker 为开发者提供了一种开发环境的管理办法,帮助测试人员保证环境的同步,为运维人员提供了可移植的标准化部署流程。

4、kubernetes和docker有什么关系?

众所周知,Docker提供容器的生命周期管理,Docker镜像构建运行时容器。但是,由于这些单独的容器必须通信,因此使用Kubernetes。因此,我们说Docker构建容器,这些容器通过Kubernetes相互通信。因此,可以使用Kubernetes手动关联和编排在多个主机上运行的容器。

5、kubernete 核心组件以及他们的作用是什么?

kubernete的核心由master和node节点组成。master节点由kube-apiserver、kube-controller-manager和kube-scheduler组成,node节点主要由kubelet、docker以及kube-proxy组成,这些进程实现了整个集群的资源管理、pod调度、弹性伸缩、安全控制、系统监控和纠错的功能,并且都是自动完成的,在node节点上运行着kube-proxy、kubelet等服务进程,这些进程负责着pod的创建、启动、监控、销毁以及实现软件模式的负载均衡

K8S Master节点:

Kube-apiserver:主要提供了k8s对外唯一的接口,提供HTTP/HTTPS RESTful类型的接口,也就是Kubernetes api ,所有的请求都需要经过这个 接口进行通讯,主要用于REST操作(get、put、post、delete)以及更新ETCD中的对象,是资源增删改查的唯一入口

Kubernete-scheduler:资源调度,负责决定将pod放在哪一个节点上运行。scheduler会在调度的时候对集群的结构进行分析,当前节点的负载,以及对高可用和性能等方面的需求。

Kube-conroller-manager:负责管理集群的各种资源,确保集群的资源处于预期中的状态。controller-manager由多种controller组成,包括replication-controller、endpoint-controller、namespapces、controller、serviceaccounts controller等

Etcd:负责保存k8s集群的配置信息和各种资源的状态信息,当数据发生变化时,etcd会快速的通知k8s组件

Pod:pod之间要能够互相通讯,k8s集群必须部署pod网络,fannel是一种可行的方案

K8S Node节点:

Kubelet:kubelet是node的agent,当scheduler确定某一个pod在哪个节点上运行的时候,会将pod的具体信息(image、volume)等发给该节点的kubelet,kubelet会根据这些信息监控每个运行的容器,并向master报告运行状态。

Kube-proxy:其实可以将kube-proxy理解为service,主要用于请求转发。servcice代表了后端的多个pod,外界通过servic来访问pod。service收到请求之后就需要kube-proxy来完成转发,在每一个node节点都会运行kube-proxy,该服务将访问service的TCP/UDP数据转发到后端的容器,如果有多个副本,kube-proxy会实现负载均衡,有两种方式:LVS和Iptables

6、Replica Set 和 Replication Controller之间有什么区别?

Replica Set 和 Replication Controller几乎完全相同。它们都确保在任何给定时间运行指定数量的pod副本。
1.rs是rc的升级版本,rs一般会结合deployment

2.rc的pod如果要配置镜像等内容,要修改后删除原来的rc再创建 命令式,影响业务比较大

3.rs一般配合deployment,可以动态修改deployment的配置,apply后直接更新到最新版本,影响在线业务比较小 API声明式的

4.ReplicaSet(RS)是Replication Controller(RC)的升级版本。ReplicaSet 和 Replication Controller之间的唯一区别是对选择器的支持。ReplicaSet支持labels user guide中描述的set-based选择器要求, 而Replication Controller仅支持equality-based的选择器要求。

7、什么是Kubectl?

Kubectl是一个平台,您可以使用该平台将命令传递给集群。因此,它基本上为CLI提供了针对Kubernetes集群运行命令的方法,以及创建和管理Kubernetes组件的各种方法。

8、什么是Kubelet?

这是一个代理服务,它在每个节点上运行,并使从服务器与主服务器通信。因此,Kubelet处理PodSpec中提供给它的容器的描述,并确保PodSpec中描述的容器运行正常。

9、什么是ETCD?

Etcd是用Go编程语言编写的,是一个分布式键值存储,用于协调分布式工作。因此,Etcd存储Kubernetes集群的配置数据,表示在任何给定时间点的集群状态。
10、

10、kubernetes的负载均衡

负载均衡器是暴露服务的最常见和标准方式之一。根据工作环境使用两种类型的负载均衡器,即内部负载均衡器或外部负载均衡器。内部负载均衡器自动平衡负载并使用所需配置分配容器,而外部负载均衡器将流量从外部负载引导至后端容器。

Kubernetes(简称K8s)是一个开源容器管理系统,它由Google设计并逐渐成为业内标准。Kubernetes的核心组件主要包括以下几个: 1. **Master Node(控制节点)**:包括etcd、API ServerScheduler。etcd负责存储集群的配置信息,API Server提供RESTful API供客户端与服务交互,而Scheduler则负责分配Pod(最小部署单元)到可用的Worker Node。 2. **Worker Node(工作节点)**:也称为Pods的运行环境,每个Node上有kubelet,用于接收来自Master的指令并在本地执行Pod的生命周期管理。此外,Kube-proxy用于网络代理,使Pod间的通信得以实现。 3. **Pod**:是Kubernetes的基本执行单元,封装了应用及其依赖的容器,类似于Docker中的容器组。 4. **Deployment**:是一种控制器,用于维护Pod副本数的稳定,它可以自动创建、更新替换Pod,以达到应用的高可用性。 5. **Service**:定义了一个访问应用程序的方式,可以将流量路由到一组Pod,并提供了负载均衡故障转移功能。 6. **ConfigMap** **Secrets**:分别用于存储静态配置文件敏感数据,如密码、API密钥等,以安全的方式提供给Pod。 7. **Horizontal Pod Autoscaler(HPA)**:用于自动调整Pod的数量以响应CPU或内存使用量的变化,维持资源利用率在一个设定范围内。 8. **Ingress Controller**:通常用于外部访问,将HTTP请求路由到内部的服务,例如Nginx或Traefik。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值