kubernetes-02-资源管理

目录

1:资源管理

2:资源管理方式

2.1-命令式对象管理:

2.2-命令式对象配置

2.3-声明式对象配置


1:资源管理

在kubernetes中,所有的内容都叫资源,所以我们呢需要通过操作资源来管理kubernetes。

在kubernetes中有两个非常基础的资源,node和pod;

node:就是节点。

pod:就是对容器的封装,是应用运行的实体。

在 Kubernetes 集群管理中,有一个非常核心的功能:

就是为 Pod 选择一个主机运行。

调度必须满足一定的条件,其中最基本的是主机上要有足够的资源给 Pod 使用。

1: 什么是 pod?

kubernetes中最小管理单元是pod,而不是容器,因此只能将容器放在pod中,

而kubernetes一般也不回直接管理pod,而是通过pod控制器来管理pod;

2: 如何访问pod中的服务?

kubernetes中提供了service资源来实现访问pod中服务的功能。

3:持久化?

kubernetes也提供了存储系统。

也就是说资源就是pod,pod控制器,service,存储等这些资源;

4: pod-容器-服务三者的关系?

pod包含容器,容器包含服务。

2:资源管理方式

有三种资源管理方式

#命令式对象管理:直接用命令操作kubernetes资源
kubectl run nginx-pod --image=nginx:1.17.1 --port=80

这种就是通过:命令+拼接参数的方式;


#命令式对象配置:通过命令配置和配置文件去操作kubernetes资源
kubectl cteate/patch -f nginx-pod.yaml

这种就是通过:命令+配置文件的方式;

这种和命令对象管理的区别就是:参数通过配置文件的形式填充,不再通过命令的方式填充;


#声明式对象配置:通过apply命令和配置文件去操作kubernetes资源
kubectl apply -f nginx-pod.yaml

这种就是通过:apply 命令+配置文件的方式;

(不过apply一般用于创建和更新资源)

2.1-命令式对象管理:

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

kubectl命令的语法如下:
        kubectl [command] [type][name] [flags]

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

查看所有pod:kubectl get pod

查看某个pod:kubectl get pod pod_name

查看某个pod,l以yaml格式展示结果:kubectl get pod pod_name -o yaml

资源操作/资源命令:

kubernetes允许对资源进行多种操作,可以通过--helper查看具体的操作命令;

kubectl --helper

常见的命令有如下这些:

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

 资源类型:

kubernetes中所有的内容都可以看成是资源,可以通过这个命令进行查看:

kubectl api-resources

经常使用的资源有下面这些:

资源分类资源名称缩写资源作用
集群级别资源nodesno集群组成部分
namespacesns隔离pod
pod资源podspo装载容器
pod资源控制器replicationcontrollersrc控制pod资源
replicasetsrs控制pod资源
deploymentsdeploy控制pod资源
daemonsetsds控制pod资源
jobs控制pod资源
cronjobscj控制pod资源
horizontalpodautoscalershpa控制pod资源
statefulsetssts控制pod资源
服务发现资源servicessvc统一pod对外接口
ingressing统一pod对外接口
存储资源volumeattachments存储
persistentvolumespv存储
persistentvolumeclaimspvc存储
配置资源configmapscm配置
secrets配置

2.2-命令式对象配置

命令式对象配置就是使用命令+配置文件的方式,来操作kubernetes资源。

1: 创建一个nginxpod.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: dev

---

apiVersion: v1
kind: Pod
metadata:
  name: nginxpod
  namespace: dev
spec:
  containers:
  - name: nginx-containers
    image: nginx:1.17.1      

#执行create命令,创建资源
kubectl create -f nginxpod.yaml
        namespace / dev created
        pod/ nginxpod created
此创建的两个资源对象,分别是namespace和pod

#执行get命令,查看资源
kubectl get -f nginxpod.yaml

#删除资源

kubectl delete -f nginxpod.yml

总结:

命令式对象配置的方式操作资源,

        可以简单的理解为:命令+yaml配置文件(里面是命令需要的各种参数)

2.3-声明式对象配置(只能安装与更新)

声明式对象配置跟命令式对象配置很类似,只有一个命令apply。

kubectl apply -f nginxpod.yaml

总结: 其实声明式对象配置就是使用apply描述一个资源最终的状态(在yaml中定义状态) apply操作资源:

        如果资源不存在,就创建,相当于kubectl create

        如果资源已存在,就更新,相当于kubectl patch

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

三种方式应该怎么用?

创建/更新资源:使用声明式对象配置 kubectl apply -f xxx.yaml

删除资源:使用命令式对象配置kubectl delete -f xxx.yaml

查询资源:使用命令式对象管理 kubectl get(describe) 资源名称

其实是随便用,无所谓的,看个人喜好;

Kubernetes-资源管理的三种方式_咸鱼很闲-CSDN博客_k8s 资源管理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值