Kubernetes(K8S)之学废了(三):k8s资源管理

本文详细介绍了Kubernetes资源管理,包括资源管理介绍、命令式对象管理、命令式对象配置和声明式对象配置。Kubernetes将所有内容抽象为资源,通过Pod控制器管理Pod,使用Service资源实现服务访问,提供多种存储系统。资源管理方式涵盖kubectl命令操作、配置文件应用,以及资源的创建、更新和删除策略。

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


一、资源管理介绍

在Kubernetes中所有内容都抽象为资源,用户需要通过操作资源来管理Kubernetes。

  • kubernetes的本质上就是一个集群系统,用户可以在集群中部署名种服务,所谓的部署服务,其实就是在 kubernetes集群中运行一 个个的容器,并将指定的程序跑在容器中

  • kubernetes的最小管理单元是pod而不是容器, 所以只能将容器放在 pod中,而kubernetes一般也不会直接管理Pod, 而是通过 Pod控制器 来管理Rod的。

  • Pod可以提供服务之后,就要考虑如何访问Pod中的服务,kubernetes提供了 service 资源实现这个功能。

  • 当然,如果Pod中程序的数据需要持久化,kubernetes还提供了各种存储系統。
    在这里插入图片描述

二、资源管理方式

1.命令式对象管理:直接使用命令操作资源

kubectl run nginx-pod --image=nginx:1.17.1 --port=80

2.命令式对象配置:通过命令配置和配置文件去操作资源

kubectl create/patch -f nginx-pod.yml

3.声明式对象配置:通过apply命令和配置文件去操作资源
只适合用于创建和更新资源

kubectl apply -f nginx-pod.yml

命令式对象管理

kubectl命令
kubecul是kubernetes集群的命令行工具,通过它能够对集群本身进行管理,并能在集群上进行容器化应用的 安装部署。kubectl命令的语法如下 :

 kubectl [command] [type] [namel] [flags]

command:指定要对资源执行的操作,例create、 get、 delete
type :指定资源类型,比如deployment、pod、 service
name:指定资源的名称,名称大小写敏感
fags: 指定额外的可选参数

#查看所有pod 
kubectl get pod 
# 查看某个
pod kubectl get pod pod_name 
# 查看某个pod,以ymal格式展示结果 
kubectl get pod pod_name -o yaml

常用的操作命令

命令分类命令作用
基本命令create创建一个资源
基本命令edit编辑一个资源
基本命令get获取一个资源
基本命令patch更新一个资源
基本命令delete删除一个资源
基本命令explain展示资源文档
运行和调试run在集群中运行一个指定的镜像
运行和调试expose暴露资源为service
运行和调试describe显示资源内部信息
运行和调试logs输出容器在pod中的日志
运行和调试attach进入运行中的容器
运行和调试exec执行容器中的一个命令
运行和调试cp在pod内外复制文件
运行和调试rollout管理资源的发布
运行和调试scale扩(缩)容pod的数量
运行和调试autoscale自动调整pod数量
高级命令apply通过文件对资源进行配置
高级命令lable更新资源上的标签
其他命令cluster-info显示集群信息
其他命令version显示当前server和client的版本

资源类型
kubernetes中所有的内容都抽象为资源,可以通过下面的命令进行查看:

kubectl api-resources

经常使用的资源

资源分类资源名称缩写作用
集群级别资源nodeno集群组成部分
集群级别资源namespacens隔离pod
pod资源podspo装载容器
pod资源控制器nodeno集群组成部分
pod资源控制器replicationcontrollersr c控制pod资源
pod资源控制器replicasetsrs控制pod资源
pod资源控制器deploymentsdeploy控制pod资源
pod资源控制器daemonsetsds控制pod资源
pod资源控制器jobs----控制pod资源
pod资源控制器cronjobscj控制pod资源
pod资源控制器horizontalpodautpscalershpa控制pod资源
pod资源控制器statefilsetssts控制pod资源
服务发现资源servicesvc统一pod对外接口
服务发现资源ingreessing统一pod对外接口
存储资源volumeattachments----存储
存储资源persistentvolumespv存储
配置资源configmapscm配置
配置资源secrets配置

例子:
在这里插入图片描述

命令式对象配置

就是使用配置文件一起来操作资源
1.创建一个nginx.yml

# 创建一个dev的namespace
apiVersion: v1 
kind: Namespace 
metadata: 
	name: dev
---
# 在dev命名空间中创建一个pod
apiVersion: v1 
kind: Pod 
metadata: 
 name: nginxpod # pod的名字
 namespace: dev
spec: 
 containers: 
 - name: nginx-containers   # pod中容器的名字 
   image: nginx:1.17.1

2.执行create命令,创建资源

[root@k8s-master ~]# kubectl create -f nginxpod.yml
namespace/dev1 created
pod/nginxpod1 created

会发现创建了两个资源namespace和pod

需要删除刚创建的两个资源时,可以使用命令:

kubectl delete -f nginxpod.yml

声明式对象配置

仅仅用于新增和更新,使用两次apply命令会发现,提示没有更新,它的作用就是,资源存在就更新,相当于kubectl patch 命令;资源存不在就创建相,当于kubectl create 命令;

在这里插入图片描述

扩展

kubectl可以在node节点上运行吗?
kubect的运行是需要进行配置的,它的配置文件是在master上面的$HOME/.kube, 如果想要在node节点运行此命令,需要将 master上的.kube文件复制到node节点上,即在master节点上执行下面操作:

 scp -r ~/.kube node1: ~/

使用推荐 三种方式应该怎么用?
创建/更新资源 使用声明式对象配置 kubectl apply f xxxyaml
删除资源 使用命令式对象配置 kebect delete -f xxxyaml
查询资源 使用命令式对象管理 Kubact get(desaribe) 资源名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值