资源

kubernetes系统的 api server基于http/https接收并响应客户端的操作请求,它提供了一种基于资源的RESTful风格的编程结构,将集群的各种组件都抽象成为标准的REST资源,如Node、Namespace和Pod等,并支持通过标准的HTTP方法以JSON为数据序列化方案进行资源管理操作。

kubernetes系统将一切事物都抽象为API资源。资源实例化之后,叫做对象。

image-20240905143940347

资源类别

  • 名称空间级别

    • 工作负载型资源:Pod、ReplicaSet、Deployment...
    • 服务发现及负载均衡型资源:Service、Ingress...
    • 配置与存储型资源:Volume、CSI...
    • 特殊类型的存储卷:ConfigMap、Secre...
  • 集群级资源(与集群相关的资源)

    • Namespace、Node、ClusterRole、ClusterRoleBinding
  • 元数据型资源(为集群内部的其他资源配置其行为或特性)

    • HPA、PodTemplate、LimitRange

资源清单编写

apiVersion: v1
kind: Pod
metadata:
  name: pod-demo
  namespace: default
  labels:
    app: myapp
spec:
  containers:
    - name: myapp-1
      image: nginx
      resources:
        limits:
          memory: "128Mi"
          cpu: "500m"
    - name: myapp-2
      image: centos
      resources:
        limits:
          memory: "128Mi"
          cpu: "500m"
      command:
        - "/bin/sh"
        - "-c"
        - "sleep 300"
status:
  conditions:
    - lastProbeTime: "2024-09-04T07:50:54Z"
      lastTransitionTime: "2024-09-04T07:50:54Z"
      status: "True"
      type: Initialized

每个组成部分如下

image-20240905150823599

查询对象属性

$ kubectl explain pod.spec.containers
KIND:       Pod
VERSION:    v1

FIELD: containers <[]Container>

DESCRIPTION:
    List of containers belonging to the pod. Containers cannot currently be
    added or removed. There must be at least one container in a Pod. Cannot be
    updated.
    A single application container that you want to run within a pod.
...

kubectl的部分命令

# 获取当前的资源,pod
$ kubectl get pod 
    -A,--all-namespaces 查看当前所有名称空间的资源
    -n  指定名称空间,默认值 default,kube-system 空间存放是当前组件资源
    --show-labels  查看当前的标签
    -l  筛选资源,key、key=value
    -o wide  详细信息包括 IP、    分配的节点
    -w  监视,打印当前的资源对象的变化部分

# 进入 Pod 内部的容器执行命令
$ kubectl exec -it podName -c cName -- command
    -c  可以省略,默认进入唯一的容器内部

# 查看资源的描述
$ kubectl explain pod.spec

# 查看 pod 内部容器的 日志
$ kubectl logs podName -c cName

# 查看资源对象的详细描述
$ kubectl describe pod podName

# 删除资源对象
$ kubectl delete kindName objName
    --all 删除当前所有的资源对象
学前沿IT,到英格科技! all right reserved,powered by Gitbook本文发布时间: 2025-11-24 10:09:15

results matching ""

    No results matching ""