前言

本文是k8s的学习笔记,资源是
【k8s教程】薪享宏福Kubernetes v1.29 |2024最新版!B站最强!百万播放汪洋授课,轻松拿捏k8s


一、什么是资源?

K8S中所有的内容都抽象为资源,资源实例化之后,叫做对象。
我个人觉得资源清单跟docker compose 很像啊,都是在定义我们怎么去启动一个容器。

二、资源分类

  • 名称空间级别

工作负载型资源:Pod、ReplicaSet、Deployment …
服务发现及负载均衡型资源:Service、Ingress…
配置与存储型资源:Volume、CSI…
特殊类型的存储卷:ConfigMap、Secre …

集群级资源

Namespace、Node、ClusterRole、ClusterRoleBinding

元数据型资源

HPA、PodTemplate、LimitRange

名称空间级别的资源,我个人理解就是类似于节点内部的资源,比如,某个大学的某个系
集群级别资源,我个人理解就是,节点级别的资源,比如,某个大学
元数据型资源,我个人理解就是,对资源进行监控,当资源不够用的时候自动进行扩容。

三、资源清单

1.资源清单的结构

在这里插入图片描述
资源清单的结构主要分成5大部分
分别是apiversion,kind,metadata,spec,status

apiversion

apiversion 用于指定 采用的是什么的东西,我个人理解是官方开发的一些东西
这里需要填写的 接口组/版本号

kubectl api-versions

可以用这个命令来查看有哪些接口组
在这里插入图片描述

kind

kind是类别,我个人理解这里主要是写资源的类型

metadata

元数据,主要是写关于资源的一些数据,比如名称,标签,等等

spec

Specification 规格,规范
这里主要是用来定义我们对资源的各种规范

status

状态,这里是关于资源的各种状态,由集群维护,我们主要是写上面四个

资源清单上手

kubectl create -f 1.pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-demo
  namespace: default
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-1
    image: wangyanglinux/myapp:v1.0
  - name: busybox-1
    image: wangyanglinux/tools:busybox
    command:
    - "/bin/sh"
    - "-c"
    - "sleep 3600"

获取命名空间里的pod

kubectl get pod -n 命名空间

在这里插入图片描述

获取节点信息

kubectl get node

常用命令

pod相关

获取全部的pod

kubectl get pod -A

在这里插入图片描述
获取pod的额外信息

kubectl get pod -o wide

在这里插入图片描述
进入到pod的容器内部

kubectl exec -it pod名称 -c 容器名称 -- /bin/bash

注::-c可以省略,当pod只有一个容器的时候

查看pod的标签

kubectl get pod --show-labels

在这里插入图片描述
通过标签去查询pod

kubectl get pod -l 标签

在这里插入图片描述
查看容器的日志

kubectl logs pod名 -c 容器名 

在这里插入图片描述

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐