实习笔记4-Kubernetes基础知识

本文介绍了Kubernetes的基本概念,如其作为容器应用管理系统的特点,创建K8S对象的方法,容器与JVM、VM的区别,以及Kubernetes集群的架构组成。重点讲解了如何使用kubectl操作和管理Kubernetes对象,如Deployment和Pod的配置。

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

一、Kubernetes是什么

     Kubernetes是一个很容易地部署和管理容器化的应用软件系统,使用Kubernetes能够方便对容器进行调度和编排。Kubernetes提供服务发现、伸缩、负载均衡、自愈甚至选举等功能,让开发者从基础设施相关配置等解脱出来。

1.如何创建一个K8S对象:

必须提供对象的 spec,用来描述该对象的期望状态, 以及关于对象的一些基本信息(例如名称)。一般用yaml文件表示,如下:

使用 kubectl 命令行接口(CLI)的 kubectl apply 命令, 将 .yaml 文件作为参数。

kubectl apply -f https://k8s.io/examples/application/deployment.yaml

二、Kubernetes对象

1.k8s对象管理

指令式命令

通过创建 Deployment 对象来运行 nginx 容器的实例:

kubectl create deployment nginx --image nginx

指令式对象配置

kubectl 命令指定操作(创建,替换等),可选标志和 至少一个文件名。指定的文件必须包含 YAML 或 JSON 格式的对象的完整定义。

声明式对象配置

使用声明式对象配置时,用户对本地存储的对象配置文件进行操作,但是用户 未定义要对该文件执行的操作。 kubectl 会自动检测每个文件的创建、更新和删除操作。 这使得配置可以在目录上工作,根据目录中配置文件对不同的对象执行不同的操作。

容器和JVM、VM的区别:

docker这类“容器”技术是模拟了一整个操作系统,它是静态存在的,可以支撑任何相同平台的应用程序执行,并且容器本身是进程无关的。

jvm是一个特定代码的执行平台,它是运行时才存在的,只能支撑特定代码的执行,并且必须是在jvm进程内。

VM 模拟整个计算机,包括虚拟化硬件、OS、用户模式及其自身的内核模式。 VM 非常灵活,可为应用程序提供广泛的支持;但是,VM 往往比较大,会消耗主机资源。

三、Kubernetes集群架构

      Master:集群的控制节点。在生产环境中为了保障集群的高可用性,通常部署多个Master。

      Node:工作节点、计算节点。应用部署在Node节点上。

      一个Node里可以有很多Pod,一个Pod里可以有很多Container。一般说的实例是Pod。

      Pod的属性:1.Label:资源分类,粒度较细。

                          2.Namespace:资源分组,一般用于团队。

      用YAML文件描述Pod:

  • metadata:一些名称/标签/namespace等信息。
  • spec:Pod期望的配置信息,包括使用什么镜像image,存储资源volume等。limits是使用资源的上限,requests是拉起新容器的下限。
  • status:对象的当前状态,是由 Kubernetes 系统和组件设置并更新的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值