Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /opt/bitnami/wordpress/wp-includes/functions.wp-styles.php on line 90
K8S主要资源罗列 - IT民工进阶记

K8S主要资源罗列

1、pod

K8s里最小部署单元,是整个K8s最核心的资源对象,它是一组容器的集合,可以只是单个容器,也可以多个容器。

  • pod相关操作命令: 命令 说明 kubectl run podname –image=镜像 启动容器 kubectl get pods 列出所有pod kubectl describe pod podname 查看pod详细信息 kubectl exec -it podname — command 进入到pod里操作 kubectl delete pod podname 删除pod kubectl logs podname 查看pod日志

2、Deployment

比pod更高一层及的资源对象,它提供了一种对pod的管理方式,它可以很方便地实现pod的扩容、缩容、升级、回滚。

  • Deployment相关操作命令: 命令 说明 kubectl create deployment dpname –images=镜像 创建deployment kubectl get deployment 列出所有deployment kubectl describe deployment dpname 查看deployment详细信息 kubectl delete deployment dpname 删除deployment kubectl scale deployment dpname –replicas=n 扩容/缩容

3、Service

为pod提供负载均衡、对外统一访问入口,用户访问具体pod时,不需要关心pod地址,而只需要通过这个固定的Service地址来访问

  • Service相关操作命令: 命令 说明 kubectl expose deployment dpname –port=service端口 –type=service类型 –target-port=pod监听端口 –name=svcname 创建service,同时定义暴漏port kubectl get svc 列出所有service kubectl describe svc svcname 查看service详细信息 kubectl delete svc svcname 删除service
  • 扩展:
service 的类型:
● ClusterIP:提供一个集群内部的虚拟IP以供Pod访问(service默认类型)
● NodePort:在每个Node上打开一个端口以供外部访问,Kubernetes将会在每个Node上打开一个端口并且每个kocde的端口都是一样的,通过NodeIp:NodePort的方式Kubernetes集群外部的程序可以访问Service。
注:每个端口只能是一种服务,端口范围只能是 30000-32767。
● LoadBalancer:通过外部的负载均衡器来访问,通常在云平台部署LoadBalancer还需要额外的费用。

4、Label

Label是一个键值对,其中键和值都由用户自定义,Label可以附加在各种资源对象上,如Node、Pod、Service、Deployment等。
一个资源对象可以定义多个Label,同一个Label也可以被添加到任意数量的资源对象上。Label可以在定义对象时定义,也可以在对象创建完后动态添加或删除。

5、Volume

Volume是pod中能够被多个容器访问的共享目录,kubernetes中的volume和docker中的volume不一样,主要有以下几个方面:
1)kubernetes的volume定义在pod上,然后被一个pod里的多个容器挂载到具体的目录下
2)kubernetes的volume与pod生命周期相同,但与容器的生命周期没关系,当容器终止或者重启时,volume中的数据并不会丢失
3)kubernetes支持多种类型的volume,如glusterfs,ceph等先进的分布式文件系统

6、PV(persistent volume)

PV可以理解成kubernetes集群中某个网络存储中对应的一块存储,它与volume类似,但有如下区别:
1)PV只能是网络存储,不属于任何Node,但可以在每个Node上访问到
2)PV并不是定义在pod上,而是独立于pod之外定义
3)PV目前只有几种类型:GCE Persistent Disk、NFS、RBD、iSCSCI、AWS ElasticBlockStore、GlusterFS

7、PVC(PersistentVolumeClaim)

如果某个pod想申请某种条件的PV,首先需要定义一个PVC对象

8、NameSpace

当kubernetes集群中存在多租户的情况下,就需要有一种机制实现每个租户的资源隔离。而namespace的目的就是为了实现资源隔离。

  • Namespace相关操作命令: 命令 说明 kubectl create namespace nsname 创建namespace kubectl get namespace 列出所有namespace,default为默认命名空间,kube-system:K8s 系统⽅⾯的命名空间
    kube-public:公开的命名空间,谁都可以访问,kube-node-lease:K8s 内部命名空间 kubectl -n nsname 查看资源时指定namespace kubectl delete namespace nsname 删除namespace
  • 扩展:
    容器技术介绍:https://blog.csdn.net/wdhlzd/article/details/120633391
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
Docker云原生

Containerd快速入门

2025-4-9 8:33:00

Kubernetes云原生

认识YAML

2025-4-9 8:34:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
本站支持IPv6访问