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

Linux系统之K8S基本命令概述

kubectl管理工具

命令概要

kubectl命令是K8S集群的管理命令行工具,用于与集群进行交互和执行各种操作,如:查看、创建、删除、更新资源等。

默认情况下,使用kubectl命令时,从配置文件$HOME/.kube/config文件或环境变量KUBECONFIG中读取与集群的连接信息。

若要指定节点能够管理集群,需要将连接文件(/etc/kubernetes/admin.conf)拷贝到配置文件或者设置环境变量KUBECONFIG=“/etc/kubernetes/admin.conf”。

Usage:kubectl [flags] [options]
​
Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).

K8S-资源支持介绍

NAMESHORTNAMESAPIVERSIONNAMESPACEDKIND
bindingsv1trueBinding
componentstatusescsv1falseComponentStatus
configmapscmv1trueConfigMap
endpointsepv1trueEndpoints
eventsevv1trueEvent
limitrangeslimitsv1trueLimitRange
namespacesnsv1falseNamespace
nodesnov1falseNode
persistentvolumeclaimspvcv1truePersistentVolumeClaim
persistentvolumespvv1falsePersistentVolume
podspov1truePod
podtemplatesv1truePodTemplate
replicationcontrollersrcv1trueReplicationController
resourcequotasquotav1trueResourceQuota
secretsv1trueSecret
serviceaccountssav1trueServiceAccount
servicessvcv1trueService
mutatingwebhookconfigurationsadmissionregistration.k8s.io/v1falseMutatingWebhookConfiguration
validatingwebhookconfigurationsadmissionregistration.k8s.io/v1falseValidatingWebhookConfiguration
customresourcedefinitionscrd,crdsapiextensions.k8s.io/v1falseCustomResourceDefinition
apiservicesapiregistration.k8s.io/v1falseAPIService
controllerrevisionsapps/v1trueControllerRevision
daemonsetsdsapps/v1trueDaemonSet
deploymentsdeployapps/v1trueDeployment
replicasetsrsapps/v1trueReplicaSet
statefulsetsstsapps/v1trueStatefulSet
selfsubjectreviewsauthentication.k8s.io/v1falseSelfSubjectReview
tokenreviewsauthentication.k8s.io/v1falseTokenReview
localsubjectaccessreviewsauthorization.k8s.io/v1trueLocalSubjectAccessReview
selfsubjectaccessreviewsauthorization.k8s.io/v1falseSelfSubjectAccessReview
selfsubjectrulesreviewsauthorization.k8s.io/v1falseSelfSubjectRulesReview
subjectaccessreviewsauthorization.k8s.io/v1falseSubjectAccessReview
horizontalpodautoscalershpaautoscaling/v2trueHorizontalPodAutoscaler
cronjobscjbatch/v1trueCronJob
jobsbatch/v1trueJob
certificatesigningrequestscsrcertificates.k8s.io/v1falseCertificateSigningRequest
leasescoordination.k8s.io/v1trueLease
bgpconfigurationscrd.projectcalico.org/v1falseBGPConfiguration
bgpfilterscrd.projectcalico.org/v1falseBGPFilter
bgppeerscrd.projectcalico.org/v1falseBGPPeer
blockaffinitiescrd.projectcalico.org/v1falseBlockAffinity
caliconodestatusescrd.projectcalico.org/v1falseCalicoNodeStatus
clusterinformationscrd.projectcalico.org/v1falseClusterInformation
felixconfigurationscrd.projectcalico.org/v1falseFelixConfiguration
globalnetworkpoliciescrd.projectcalico.org/v1falseGlobalNetworkPolicy
globalnetworksetscrd.projectcalico.org/v1falseGlobalNetworkSet
hostendpointscrd.projectcalico.org/v1falseHostEndpoint
ipamblockscrd.projectcalico.org/v1falseIPAMBlock
ipamconfigscrd.projectcalico.org/v1falseIPAMConfig
ipamhandlescrd.projectcalico.org/v1falseIPAMHandle
ippoolscrd.projectcalico.org/v1falseIPPool
ipreservationscrd.projectcalico.org/v1falseIPReservation
kubecontrollersconfigurationscrd.projectcalico.org/v1falseKubeControllersConfiguration
networkpoliciescrd.projectcalico.org/v1trueNetworkPolicy
networksetscrd.projectcalico.org/v1trueNetworkSet
endpointslicesdiscovery.k8s.io/v1trueEndpointSlice
eventsevevents.k8s.io/v1trueEvent
flowschemasflowcontrol.apiserver.k8s.io/v1beta3falseFlowSchema
prioritylevelconfigurationsflowcontrol.apiserver.k8s.io/v1beta3falsePriorityLevelConfiguration
ingressclassesnetworking.k8s.io/v1falseIngressClass
ingressesingnetworking.k8s.io/v1trueIngress
networkpoliciesnetpolnetworking.k8s.io/v1trueNetworkPolicy
runtimeclassesnode.k8s.io/v1falseRuntimeClass
apiserversoperator.tigera.io/v1falseAPIServer
imagesetsoperator.tigera.io/v1falseImageSet
installationsoperator.tigera.io/v1falseInstallation
tigerastatusesoperator.tigera.io/v1falseTigeraStatus
poddisruptionbudgetspdbpolicy/v1truePodDisruptionBudget
clusterrolebindingsrbac.authorization.k8s.io/v1falseClusterRoleBinding
clusterrolesrbac.authorization.k8s.io/v1falseClusterRole
rolebindingsrbac.authorization.k8s.io/v1trueRoleBinding
rolesrbac.authorization.k8s.io/v1trueRole
priorityclassespcscheduling.k8s.io/v1falsePriorityClass
csidriversstorage.k8s.io/v1falseCSIDriver
csinodesstorage.k8s.io/v1falseCSINode
csistoragecapacitiesstorage.k8s.io/v1trueCSIStorageCapacity
storageclassesscstorage.k8s.io/v1falseStorageClass
volumeattachmentsstorage.k8s.io/v1falseVolumeAttachment

K8S-namespace资源对象

一、概述

Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间

命名空间namespace是k8s集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的命名空间,例如,可以为test、devlopment、production、deployment环境分别创建各自的命名空间。

namespace应用场景

命名空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间。

二、namespace资源管理

2.1 查看名称空间及其资源对象

k8s集群默认提供了几个名称空间用于特定目的,例如,kube-system主要用于运行系统级资源,存放k8s一些组件的。而default则为那些未指定名称空间的资源操作提供一个默认值。

##查看名称空间  kubectl get namespace        
##查看特定的名称空间的详细信息 kubectl describe namespace NAME

2.2 管理namespace资源

namespace资源的名称仅能由字母、数字、下划线、连接线等字符组成。删除namespace资源会级联删除其包含的所有其他资源对象。

##创建名称空间  kubectl create namespace 名称
##删除名称空间  kubectl delete namespace 名称

三、namespace使用案例

3.1 创建一个test命名空间

[root@k8s-master01 ~]# kubectl create ns test

3.2 切换默认查看命名空间

[root@k8s-master01 ~]# kubectl  config set-context --current --namespace=kube-system
#注意:切换命名空间后,kubectl get pods 如果不指定-n,查看的就是kube-system命名空间的资源了。

3.3 查看哪些资源属于命名空间级别的

[root@k8s-master01 ~]# kubectl api-resources --namespaced=true
NAME                        SHORTNAMES   APIVERSION                     NAMESPACED   KIND
bindings                                 v1                             true         Binding
configmaps                  cm           v1                             true         ConfigMap
endpoints                   ep           v1                             true         Endpoints
events                      ev           v1                             true         Event
limitranges                 limits       v1                             true         LimitRange
persistentvolumeclaims      pvc          v1                             true         PersistentVolumeClaim
pods                        po           v1                             true         Pod
podtemplates                             v1                             true         PodTemplate
replicationcontrollers      rc           v1                             true         ReplicationController
resourcequotas              quota        v1                             true         ResourceQuota
secrets                                  v1                             true         Secret
serviceaccounts             sa           v1                             true         ServiceAccount
services                    svc          v1                             true         Service
controllerrevisions                      apps/v1                        true         ControllerRevision
daemonsets                  ds           apps/v1                        true         DaemonSet
deployments                 deploy       apps/v1                        true         Deployment
replicasets                 rs           apps/v1                        true         ReplicaSet
statefulsets                sts          apps/v1                        true         StatefulSet
localsubjectaccessreviews                authorization.k8s.io/v1        true         LocalSubjectAccessReview
horizontalpodautoscalers    hpa          autoscaling/v2                 true         HorizontalPodAutoscaler
cronjobs                    cj           batch/v1                       true         CronJob
jobs                                     batch/v1                       true         Job
leases                                   coordination.k8s.io/v1         true         Lease
networkpolicies                          crd.projectcalico.org/v1       true         NetworkPolicy
networksets                              crd.projectcalico.org/v1       true         NetworkSet
endpointslices                           discovery.k8s.io/v1            true         EndpointSlice
events                      ev           events.k8s.io/v1               true         Event
pods                                     metrics.k8s.io/v1beta1         true         PodMetrics
ingresses                   ing          networking.k8s.io/v1           true         Ingress
networkpolicies             netpol       networking.k8s.io/v1           true         NetworkPolicy
poddisruptionbudgets        pdb          policy/v1                      true         PodDisruptionBudget
rolebindings                             rbac.authorization.k8s.io/v1   true         RoleBinding
roles                                    rbac.authorization.k8s.io/v1   true         Role
csistoragecapacities                     storage.k8s.io/v1              true         CSIStorageCapacity

3.4 namespace资源限额

namespace是命名空间,里面有很多资源,那么我们可以对命名空间资源做个限制,防止该命名空间部署的资源超过限制。

如何对namespace资源做限额呢?

[[root@k8s-master01 ~]# vim namespace-quota.yaml
apiVersion: v1
kind: ResourceQuota
metadata:name: mem-cpu-quotanamespace: test
spec:hard:requests.cpu: '2'requests.memory: 2Gilimits.cpu: '4'limits.memory: 4Gi
​
####解析####
#创建的ResourceQuota对象将在test名字空间中添加以下限制:
#每个容器必须设置内存请求(memory request),内存限额(memory limit),cpu请求(cpu request)和cpu限额(cpu limit)。
##所有容器的内存请求总额不得超过2GiB。
##所有容器的内存限额总额不得超过4GiB。
##所有容器的CPU请求总额不得超过2CPU。
##所有容器的CPU限额总额不得超过4CPU。
##应用配额文件并查看命名空间是否收到了限制[root@k8s-master01 ~]# kubectl  apply -f namespace-quota.yaml
[root@k8s-master01 ~]# kubectl describe ns test
Name:         test
Resource QuotasName:            mem-cpu-quotaResource         Used  Hard--------         ---   ---limits.cpu       0     4limits.memory    0     4Girequests.cpu     0     2requests.memory  0     2Gi

3.5 创建资源限制Pod

创建pod时候可以不用设置资源限额,如下:

[root@k8s-master01 ~]# vim pod-test.yaml
apiVersion: v1
kind: Pod
metadata:name: pod-testnamespace: testlabels:app: tomcat-pod-test
spec:containers:- name:  tomcat-testports:- containerPort: 8080image: tomcat:8.5-jre8-alpineimagePullPolicy: IfNotPresent
[root@k8s-master01 ~]# kubectl apply -f pod-test.yaml
Error from server (Forbidden): error when creating "pod-test.yaml": pods "pod-test" is forbidden: failed quota: mem-cpu-quota: must specify limits.cpu for: nginx1; limits.memory for: nginx1; requests.cpu for: nginx1; requests.memory for: nginx1
##发现无法正常启动

修改一下资源配置清单

[root@k8s-master01 ~]# cat pod-test.yaml
apiVersion: v1
kind: Pod
metadata:name: pod-testnamespace: testlabels:app: tomcat-pod-test
spec:containers:- name:  tomcat-testports:- containerPort: 8080image: tomcat:8.5-jre8-alpineimagePullPolicy: IfNotPresentresources:limits:cpu: 0.5memory: 1024Mi

再次执行

[root@k8s-master01 ~]# kubectl apply -f pod-test.yaml
##查看,pod正常运行了
[root@k8s-master01 ~]# kubectl get pod -n test
NAME       READY   STATUS    RESTARTS   AGE
pod-test   1/1     Running   0          15s
http://www.dtcms.com/a/329329.html

相关文章:

  • PyTorch基础(Numpy与Tensor)
  • 集成 OceanBase 并打印 SQL 日志
  • 老生常谈智能指针:《More Effective C++》的条款28
  • PCIe Base Specification解析(十一)
  • nginx高性能web服务器实验
  • 【114页PPT】基于SAPSRM数字化采购解决方案(附下载方式)
  • Java面试宝典:G1垃圾收集器下
  • hadoop 前端yarn查看
  • 完整源码+技术文档!基于Hadoop+Spark的鲍鱼生理特征大数据分析系统免费分享
  • 以太坊的下一个十年:Vitalik Buterin的愿景与挑战
  • Day51--图论--99. 岛屿数量(卡码网),100. 岛屿的最大面积(卡码网)
  • 互联网大厂Java求职面试实录:Spring Boot到微服务与AI的技术问答
  • day50 图论基础 卡码网98. 所有可达路径
  • Day52--图论--101. 孤岛的总面积(卡码网),102. 沉没孤岛(卡码网),103. 水流问题(卡码网),104. 建造最大岛屿(卡码网)
  • java学习 leetcode 二分查找 图论
  • 【25-cv-09259】Keith律所代理Macneil Studio发起TRO狙击!
  • AI产品:从功能固化到动态进化
  • 职场与生活如何在手机中共存?(二)
  • 斯坦福大学联合项目 | ReKep 方法论文解读:机器人操作中关系关键点约束的时空推理
  • AutoCAD 各版本与插件合集详解:Architecture、Plant 3D、Civil 3D 等
  • 猿大师中间件:Chrome网页内嵌PhotoShop微信桌面应用程序
  • [Linux]学习笔记系列 -- [arm][process]
  • Node.js面试题及详细答案120题(16-30) -- 核心模块篇
  • AXIOS 入门
  • 2025 环法战车科技对决!维乐 Angel Glide定义舒适新标
  • 2025年最新Java后端场景面试题(大厂真题+解析)
  • 低空经济相关技术在智能建造与建筑行业有什么用处?
  • 图论理论部分
  • wps--设置
  • 读《精益数据分析》:双边市场的核心指标分析