k8s基础概念

Kubernetes(简称k8s)是基于容器的集群管理平台,源自Google的Borg。它提供了弹性运行分布式系统所需的框架,包括服务发现、负载均衡、自动伸缩等功能。本文介绍了k8s的基本概念,如名词解释(如container、pod、node等)和组件(如API Server、Scheduler等),并简述了k8s的安装过程,分享了在安装过程中可能遇到的问题和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是k8s1

Kubernetes(k8s)是一个基于容器的集群管理平台。它拥有庞大,快速发展的生态系统,是基于 Google 多年大规模容器管理技术 Borg 的开源版本。

k8s能做什么,k8s提供了一个弹性运行分布式系统的框架。它负责您的扩展要求,故障转移,部署模式等。支持服务发现和负载平衡,存储编排,自动部署和回滚,(自动装箱)资源分配与限制,自我修复,密钥和配置管理这些功能。

容器发展史:戳这里

小孩子都能看懂的k8s入门指南: 动画版插画版

一些名词和组件

名词解释

可以看到指南中涉及到很多对象,这些在k8s管理中都会被经常使用到:
container,pod,label,node,service,replication controller,volume,namespace

大致关系:Alt

简单总结下就是:

  1. node: 提供基础的cpu,内存等资源,可以是物理机或虚拟机,分master和worker,可运行多个pod;
  2. container: 运行在pod中,创建pod时可一次创建一个或多个,不能被直接访问,容器间通过lo虚拟接口通信;
  3. pod: k8s最基本的操作单元,可直接被访问,提供统一服务,pod中可以运行多个容器;
  4. label: 标签,是附着在资源对象上的一组或多组 Key/Value 键值对,用于指定对用户有意义的对象的属性,标签对内核系统是没有直接意义的,在创建对象时就可以指定;
    一般其他资源关联pod时就通过pod的label和label选择器关联。
  5. replication controller: 确保任何时候集群中有指定数量的 pod 副本(replicas)在运行。管理 pod 的生命周期,包括扩/缩容,滚动部署和监控等功能。方便支持k8s高可用,弹性伸缩这些功能;
  6. service: 类似iptables,service中定义了一系列映射规则,将pod服务端口映射到固定ip端口,对集群内外提供统一服务接口。原因是pod中的服务默认不能被集群外访问,并且pod是动态的,hostname和ip不固定,所以直接访问pod的服务比较困难。
  7. volume: 存储卷,挂载在pod上。防止pod被删数据丢失;方便外部配置,也方便多个pod共享配置/存储等,和docker的volume类似;
  8. namespace: 为集群提供虚拟的隔离作用,上面那些对象创建时都需要指定命名空间,默认是default;

组件

支撑上面那些对象和对象间调度的一些重要组件:
k8s 的node分master和worker:
master的组件: API Server ,Etcd,Scheduler,Controller-Manager
worker的组件: Kube-Proxy,Kubelet, docker, flannel
大致关系:

### Kubernetes 和 Docker 的基础概念 #### 什么是 Docker? Docker 是一个容器化平台,主要职责在于构建、打包以及运行容器。具体而言: - **构建容器镜像**:利用 `Dockerfile` 来描述应用程序所需环境及其依赖项,并据此创建可移植的容器镜像[^4]。 ```dockerfile FROM python:3.7-alpine WORKDIR /app COPY . . RUN pip install -r requirements.txt CMD ["python", "app.py"] ``` - **运行容器实例**:借助 Docker 引擎启动基于上述镜像的独立进程空间——即所谓的“容器”,从而实现隔离执行。 #### 什么是 Kubernetes? Kubernetes(简称 K8s),作为一款开源软件,专注于解决多个主机上众多容器之间的协调工作。其核心能力体现在以下几个方面: - **自动部署与更新**:支持声明式的配置方式来定义期望的应用状态;一旦实际状况偏离设定目标,则会触发相应的调整动作以恢复一致。 - **自我修复机制**:当检测到节点失效或其他异常情况发生时,能迅速做出反应并尝试恢复正常运作。 - **水平伸缩弹性**:依据负载变化动态增减副本数量,确保性能稳定的同时优化资源利用率。 - **服务发现和服务间通信**:内置 DNS 解析等功能简化微服务体系下的跨组件交互过程[^1]。 综上所述,尽管二者都属于现代 IT 架构中的重要组成部分,但各自侧重点有所不同。简单来说,Docker 关注于单个容器生命周期内的操作细节,而 Kubernetes 则更倾向于全局视角下整个集群级别的统筹规划。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值