当前位置: 首页 > news >正文

k8s中的资源分类及查看命令

1. 在k8s中的资源分类

工作负载型资源(workload):
Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、CronJob(ReplicationController在v1.11版本被废弃)

服务发现及负载均衡型资源(ServiceDiscovery LoadBalance):
Service、Ingress、…

配置与存储型资源:
Volume(存储卷)、CSI(容器存储接口,可以扩展各种各样的第三方存储卷)

特殊类型的存储卷:
ConfigMap(当配置中心来使用的资源类型)、Secret(保存敏感数据)、DownwardAPI(把外部环境中的信息输出给容器)
以上这些资源都是配置在名称空间级别

集群级资源:
Namespace、Node、Role、ClusterRole、RoleBinding(角色绑定)、ClusterRoleBinding(集群角色绑定)

元数据型资源:
HPA(Pod水平扩展)、PodTemplate(Pod模板,用于让控制器创建Pod时使用的模板)、LimitRange(用来定义硬件资源限制的)

# 组/版本号[root@master ~]# kubectl api-versions
admissionregistration.k8s.io/v1
apiextensions.k8s.io/v1
apiregistration.k8s.io/v1
apps/v1
authentication.k8s.io/v1
authorization.k8s.io/v1
autoscaling/v1
autoscaling/v2
batch/v1
certificates.k8s.io/v1
coordination.k8s.io/v1
crd.projectcalico.org/v1
discovery.k8s.io/v1
events.k8s.io/v1
flowcontrol.apiserver.k8s.io/v1
flowcontrol.apiserver.k8s.io/v1beta3
networking.k8s.io/v1
node.k8s.io/v1
policy/v1
rbac.authorization.k8s.io/v1
scheduling.k8s.io/v1
storage.k8s.io/v1
v1

1.查看资源

[root@master ~]# kubectl explain pod
KIND:       Pod
VERSION:    v1DESCRIPTION:Pod is a collection of containers that can run on a host. This resource iscreated by clients and scheduled onto hosts.FIELDS:apiVersion    <string>APIVersion defines the versioned schema of this representation of an object.Servers should convert recognized schemas to the latest internal value, andmay reject unrecognized values. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resourceskind    <string>Kind is a string value representing the REST resource this objectrepresents. Servers may infer this from the endpoint the client submitsrequests to. Cannot be updated. In CamelCase. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kindsmetadata    <ObjectMeta>Standard object's metadata. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadataspec    <PodSpec>Specification of the desired behavior of the pod. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-statusstatus    <PodStatus>Most recently observed status of the pod. This data may not be up to date.Populated by the system. Read-only. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

2.YAML文件解析

vim nginx-deployment.yamlapiVersion: apps/v1            #指定api版本标签
kind: Deployment            #定义资源的类型/角色,deployment为副本控制器,此处资源类型可以是Deployment、Job、Ingress、Service等
metadata:                #定义资源的元数据信息,比如资源的名称、namespace、标签等信息name: nginx-deployment        #定义资源的名称,在同一个namespace空间中必须是唯一的namespace: default               #默认就是default,可以不用写labels:                    #定义Deployment资源标签app: nginx    
spec:                        #定义deployment资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性replicas: 3                #定义副本数量selector:                    #定义标签选择器matchLabels:            #定义匹配标签app: nginx            #需与 .spec.template.metadata.labels 定义的标签保持一致template:                #定义业务模板,如果有多个副本,所有副本的属性会按照模板的相关配置进行匹配metadata:labels:                       #定义Pod副本将使用的标签,需与 .spec.selector.matchLabels 定义的标签保持一致app: nginxspec:containers:            #定义容器属性- name: nginx                #定义一个容器名,一个 - name: 定义一个容器image: nginx:1.15.4        #定义容器使用的镜像以及版本ports:- containerPort: 80        #定义容器的对外的端口#创建service服务对外提供访问并测试
vim nginx-service.yamlapiVersion: v1  
kind: Service  
metadata:name: nginx-servicelabels:app: nginx  
spec:type: NodePort  ports:- port: 80targetPort: 80  nodePort: 30080selector:app: nginx

3.测试YAML

Pod-Demo

apiVersion: v1
kind: Pod
metadata:name: pod-demonamespace: defaultlabels:app: myapp
spec:containers:- name: myapp-1image: wangyanglinux/myapp:v1.0- name: busybox-1image: wangyanglinux/tools:busyboxcommand:- "/bin/sh"- "-c"- "sleep 3600"
kubectl create -f 01.pod-demo.yaml[root@master 4]# kubectl get pod -n default
NAME       READY   STATUS              RESTARTS   AGE
pod-demo   0/2     ContainerCreating   0          59s

4.查看pod信息

# 获取当前的资源,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 删除当前所有的资源对象

4.1 获取当前的资源,pod

[root@master ~]# kubectl get pod
NAME       READY   STATUS    RESTARTS      AGE
pod-demo   2/2     Running   1 (18m ago)   158m[root@master ~]# kubectl get pod -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS        AGE
default       pod-demo                                   2/2     Running   1 (19m ago)     158m
kube-system   calico-kube-controllers-558d465845-5zr5h   1/1     Running   1 (169m ago)    3h34m
kube-system   calico-node-bpg47                          1/1     Running   14 (169m ago)   15h
kube-system   calico-node-dcqhb                          1/1     Running   4 (165m ago)    15h
kube-system   calico-node-nl2dw                          1/1     Running   3 (164m ago)    15h
kube-system   calico-typha-5b56944f9b-gcvzz              1/1     Running   4 (165m ago)    15h
kube-system   coredns-857d9ff4c9-6cb2b                   1/1     Running   1 (169m ago)    3h34m
kube-system   coredns-857d9ff4c9-tvrff                   1/1     Running   1 (169m ago)    3h34m
kube-system   etcd-master                                1/1     Running   7 (169m ago)    15h
kube-system   kube-apiserver-master                      1/1     Running   7 (169m ago)    15h
kube-system   kube-controller-manager-master             1/1     Running   8 (169m ago)    15h
kube-system   kube-proxy-ddqbc                           1/1     Running   3 (164m ago)    15h
kube-system   kube-proxy-lr5qj                           1/1     Running   7 (169m ago)    15h
kube-system   kube-proxy-p6hlv                           1/1     Running   4 (165m ago)    15h
kube-system   kube-scheduler-master                      1/1     Running   8 (169m ago)    15h[root@master ~]# kubectl get pod -n default
NAME       READY   STATUS    RESTARTS      AGE
pod-demo   2/2     Running   1 (19m ago)   159m[root@master ~]# kubectl get pod --show-labels
NAME       READY   STATUS    RESTARTS      AGE    LABELS
pod-demo   2/2     Running   1 (20m ago)   159m   app=myapp[root@master ~]# kubectl get pod --show-labels -o wide
NAME       READY   STATUS    RESTARTS      AGE    IP             NODE    NOMINATED NODE   READINESS GATES   LABELS
pod-demo   2/2     Running   1 (20m ago)   160m   10.244.104.9   node2   <none>           <none>            app=myapp

4.2 进入 Pod 内部的容器执行命令

[root@master ~]# kubectl exec -it pod-demo -c myapp-1  -- /bin/bash
pod-demo:/# ps a
PID   USER     TIME  COMMAND1 root      0:00 nginx: master process /usr/local/nginx/sbin/nginx8 nginx     0:00 nginx: worker process62 root      0:00 /bin/bash69 root      0:00 ps a

4.3 查看资源的描述

[root@master ~]# kubectl explain pods.spec.containers.name
KIND:       Pod
VERSION:    v1FIELD: name <string>DESCRIPTION:Name of the container specified as a DNS_LABEL. Each container in a pod musthave a unique name (DNS_LABEL). Cannot be updated.

4.4 查看 pod 内部容器的 日志

[root@master ~]# kubectl logs pod-demo -c myapp-1
10.0.17.100 - - [21/Aug/2024:13:12:49 +0800] "GET / HTTP/1.1" 200 48 "-" "curl/7.76.1"
10.0.17.100 - - [21/Aug/2024:13:22:23 +0800] "GET / HTTP/1.1" 200 48 "-" "curl/7.76.1"
10.0.17.100 - - [21/Aug/2024:13:23:15 +0800] "GET / HTTP/1.1" 200 59 "-" "curl/7.76.1"

4.5 查看pod详细描述

[root@master ~]# kubectl describe pod pod-demo
Name:             pod-demo
Namespace:        default
Priority:         0
Service Account:  default
Node:             node2/10.0.17.102
Start Time:       Wed, 21 Aug 2024 11:05:45 +0800
Labels:           app=myapp
Annotations:      cni.projectcalico.org/containerID: a2ba351a800e16ace038139cfb1aa8e560ac9d15634ac70fb9fc7aab9a952682cni.projectcalico.org/podIP: 10.244.104.9/32cni.projectcalico.org/podIPs: 10.244.104.9/32
Status:           Running
IP:               10.244.104.9
IPs:IP:  10.244.104.9
Containers:myapp-1:Container ID:   docker://71dcc16e0e281d48d5fe392d96a90e2914318751515cd47aacdee972ec274940Image:          wangyanglinux/myapp:v1.0Image ID:       docker-pullable://wangyanglinux/myapp@sha256:77d7ec4cd4c00f79304ee9e53ca3d72e0aba22fbaf7a86797528649e3fc66e41Port:           <none>Host Port:      <none>State:          RunningStarted:      Wed, 21 Aug 2024 11:06:01 +0800Ready:          TrueRestart Count:  0Environment:    <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-gx2qz (ro)busybox-1:Container ID:  docker://7a90d76ed08f0e05334cec13de1dd74e544e233f3b6b1575a5f8d14f5e6104e4Image:         wangyanglinux/tools:busyboxImage ID:      docker-pullable://wangyanglinux/tools@sha256:a024bc31a3a6d57ad06e0a66efa453c8cbdf818ef8d720ff6d4a36027dd1f0aePort:          <none>Host Port:     <none>Command:/bin/sh-csleep 3600State:          RunningStarted:      Wed, 21 Aug 2024 13:25:38 +0800Last State:     TerminatedReason:       CompletedExit Code:    0Started:      Wed, 21 Aug 2024 11:06:11 +0800Finished:     Wed, 21 Aug 2024 13:25:38 +0800Ready:          TrueRestart Count:  1Environment:    <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-gx2qz (ro)
Conditions:Type                        StatusPodReadyToStartContainers   True Initialized                 True Ready                       True ContainersReady             True PodScheduled                True 
Volumes:kube-api-access-gx2qz:Type:                    Projected (a volume that contains injected data from multiple sources)TokenExpirationSeconds:  3607ConfigMapName:           kube-root-ca.crtConfigMapOptional:       <nil>DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300snode.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:Type    Reason   Age                 From     Message----    ------   ----                ----     -------Normal  Created  30m (x2 over 170m)  kubelet  Created container busybox-1Normal  Started  30m (x2 over 170m)  kubelet  Started container busybox-1Normal  Pulled   30m                 kubelet  Container image "wangyanglinux/tools:busybox" already present on machine

4.6 删除资源对象

[root@master ~]# kubectl delete pod pod-demo
pod "pod-demo" deleted
[root@master ~]# kubectl delete pod pod-demo
pod "pod-demo" deleted

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • APO 新发版支持Skywalking Agent接入
  • 基于FFMPEG读取摄像头图像编码为h264
  • Selenium自动化测试 常见API的使用
  • vue中的监听器(watch,watchEffect)和计算属性(computed)
  • 95.SAP MII功能详解(08)Workbench-Transaction介绍
  • MySQL:简述事务的SQL操作
  • 48.x86游戏实战-封包抓取进图call
  • 数据结构之邻接表
  • PTA - C语言国庆题集1
  • 【Python机器学习】NLP分词——利用分词器构建词汇表(一)
  • 题解:UVA1590 IP网络 IP Networks
  • iframe中postmessage重复返回多次相同信息
  • STM32G474的HAL_ADC_Start_DMA()传递指针问题
  • JS中this的指向问题、JS的执行机制、offset、client、scroll
  • 面试题:遍历三颗相连的满二叉树
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • [译]如何构建服务器端web组件,为何要构建?
  • 10个确保微服务与容器安全的最佳实践
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • CSS魔法堂:Absolute Positioning就这个样
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Git 使用集
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Java教程_软件开发基础
  • Making An Indicator With Pure CSS
  • Shadow DOM 内部构造及如何构建独立组件
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • sublime配置文件
  • 从0到1:PostCSS 插件开发最佳实践
  • 代理模式
  • 搞机器学习要哪些技能
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 盘点那些不知名却常用的 Git 操作
  • 算法---两个栈实现一个队列
  • 线上 python http server profile 实践
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • PostgreSQL之连接数修改
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​低代码平台的核心价值与优势
  • #android不同版本废弃api,新api。
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (19)夹钳(用于送货)
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (力扣)循环队列的实现与详解(C语言)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • **python多态
  • *setTimeout实现text输入在用户停顿时才调用事件!*