java系统找不到指定文件怎么解决
260
2022-09-11
Kubernetes----Kubernetes中Namespace名字空间的简介与应用
一、名字空间简介
在 Kubernetes 中,“名字空间(Namespace)”提供一种机制,将同一集群中的资源划分为相互隔离的组。 同一名字空间内的资源名称要唯一,但跨名字空间时没有这个要求。 名字空间作用域仅针对带有名字空间的对象,例如 Deployment、Service 等,对于类似持久化存储的对象如StorageClass、Node、PersistentVolume 等则不适用名字空间
名字空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑名字空间。当需要名称空间提供的功能时,请开始使用它们。
不必使用多个名字空间来分隔仅仅轻微不同的资源,例如同一软件的不同版本: 应该使用标签 来区分同一名字空间中的不同资源。
二、名字空间的命名规则
当你创建一个服务 时, Kubernetes 会创建一个相应的 DNS 条目。 该条目的形式是 <服务名称>.<名字空间名称>.svc.cluster.local, 为了能正确解析dns,因此,名字空间的命名必须符合规定,具体如下:
最多 63 个字符只能包含小写字母、数字,以及 ‘-’须以字母数字开头须以字母数字结尾
三、默认的名字空间
3.1 查询所有名字空间
通过kubectl get namespace 命令查询,或者通过简写命令kubectl get ns,如下
[root@master demo]# kubectl get namespaceNAME STATUS AGEdefault Active 5d20hkube-node-lease Active 5d20hkube-public Active 5d20hkube-system Active 5d20hkubernetes-dashboard Active 5d18h[root@master demo]#[root@master demo]# kubectl get nsNAME STATUS AGEdefault Active 5d20hkube-node-lease Active 5d20hkube-public Active 5d20hkube-system Active 5d20hkubernetes-dashboard Active 5d18h[root@master demo]#
3.2 查询指定名称的名字空间
通过kubectl get namespace kube-system 命令或者简写命令kubectl get ns kube-system 查询 kube-system名字空间的信息
[root@master demo]# kubectl get namespace kube-systemNAME STATUS AGEkube-system Active 5d20h[root@master demo]#[root@master demo]# kubectl get ns kube-systemNAME STATUS AGEkube-system Active 5d20h[root@master demo]#
3.3 默认名字空间的作用
default 没有指明使用其它名字空间的对象所使用的默认名字空间kube-system Kubernetes 系统创建对象所使用的名字空间kube-public 这个名字空间是自动创建的,所有用户(包括未经过身份验证的用户)都可以读取它。 这个名字空间主要用于集群使用,以防某些资源在整个集群中应该是可见和可读的。 这个名字空间的公共方面只是一种约定,而不是要求。kube-node-lease 此名字空间用于与各个节点相关的 租约(Lease)对象。 节点租期允许 kubelet 发送心跳,由此控制面能够检测到节点故障
四、命令行方式对名字空间Namespace的增删改查操作
4.1 命令行创建
如下,创建名称为dev的名字空间
[root@master demo]# kubectl create namespace devnamespace/dev created[root@master demo]#
4.2 命令行查看
如下,查看名称为dev的名字空间
[root@master demo]# kubectl get namespace devNAME STATUS AGEdev Active 61s[root@master demo]#
4.3 命令行删除
如下,删除名称为dev的名字空间
[root@master demo]# kubectl delete namespace devnamespace "dev" deleted[root@master demo]#
五、配置文件的方式对名字空间Namespace的增删改查操作
5.1 使用配置文件的方式创建
编写 dev_namespace.yaml文件,编辑内容如下:
apiVersion: v1kind: Namespacemetadata: name:
使用如下命令创建
[root@master demo]# kubectl create -f dev_namespace.yamlnamespace/dev created[root@master demo]#
5.2 使用配置文件的方式查询
查询如下:
[root@master demo]# kubectl get -f dev_namespace.yamlNAME STATUS AGEdev Active 5s[root@master demo]#
5.3 使用配置文件的方式删除
如下,其中dev_namespace.yaml同3.1中的内容
[root@master demo]# kubectl delete -f dev_namespace.yamlnamespace "dev" deleted[root@master demo]#
5.4 使用配置文件的方式修改
编写 dev_namespace.yaml文件,编辑内容如下:
apiVersion: v1kind: Namespacemetadata: name:
当不存在dev空间时,使用如下命令为创建
[root@master demo]# kubectl apply -f dev_namespace.yamlnamespace/dev created[root@master demo]#
查询如下:
[root@master demo]# kubectl get namespace devNAME STATUS AGEdev Active 6s[root@master demo]#
编辑dev_namespace.yaml文件,增加labels内容,如下:
apiVersion: v1kind: Namespacemetadata: name: dev labels: env:
再次使用如下命令,此时为更新
[root@master demo]# kubectl apply -f dev_namespace.yamlnamespace/dev configured[root@master demo]#
使用如下命令查询
[root@master demo]# kubectl describe namespace devName: devLabels: env=test kubernetes.io/metadata.name=devAnnotations:
注意apply -f 只能创建或者更新,是不能删除的,删除还是使用如下命令:
[root@master demo]# kubectl delete -f dev_namespace.yamlnamespace "dev" deleted[root@master demo]#
六、查看是否属于名字空间的资源
使用如下命令查询
# 位于名字空间中的资源kubectl api-resources --namespaced=true# 不在名字空间中的资源kubectl api-resources --namespaced=false
结果如下:
[root@master object_manage]# kubectl api-resources --namespaced=trueNAME SHORTNAMES APIVERSION NAMESPACED KINDbindings v1 true Bindingconfigmaps cm v1 true ConfigMapendpoints ep v1 true Endpointsevents ev v1 true Eventlimitranges limits v1 true LimitRangepersistentvolumeclaims pvc v1 true PersistentVolumeClaimpods po v1 true Podpodtemplates v1 true PodTemplatereplicationcontrollers rc v1 true ReplicationControllerresourcequotas quota v1 true ResourceQuotasecrets v1 true Secretserviceaccounts sa v1 true ServiceAccountservices svc v1 true Servicecontrollerrevisions apps/v1 true ControllerRevisiondaemonsets ds apps/v1 true DaemonSetdeployments deploy apps/v1 true Deploymentreplicasets rs apps/v1 true ReplicaSetstatefulsets sts apps/v1 true StatefulSetlocalsubjectaccessreviews authorization.k8s.io/v1 true LocalSubjectAccessReviewhorizontalpodautoscalers hpa autoscaling/v1 true HorizontalPodAutoscalercronjobs cj batch/v1 true CronJobjobs batch/v1 true Jobleases coordination.k8s.io/v1 true Leaseendpointslices discovery.k8s.io/v1 true EndpointSliceevents ev events.k8s.io/v1 true Eventingresses ing extensions/v1beta1 true Ingresspods metrics.k8s.io/v1beta1 true PodMetricsingresses ing networking.k8s.io/v1 true Ingressnetworkpolicies netpol networking.k8s.io/v1 true NetworkPolicypoddisruptionbudgets pdb policy/v1 true PodDisruptionBudgetrolebindings rbac.authorization.k8s.io/v1 true RoleBindingroles rbac.authorization.k8s.io/v1 true Rolecsistoragecapacities storage.k8s.io/v1beta1 true CSIStorageCapacity[root@master object_manage]# kubectl api-resources --namespaced=falseNAME SHORTNAMES APIVERSION NAMESPACED KINDcomponentstatuses cs v1 false ComponentStatusnamespaces ns v1 false Namespacenodes no v1 false Nodepersistentvolumes pv v1 false PersistentVolumemutatingwebhookconfigurations admissionregistration.k8s.io/v1 false MutatingWebhookConfigurationvalidatingwebhookconfigurations admissionregistration.k8s.io/v1 false ValidatingWebhookConfigurationcustomresourcedefinitions crd,crds apiextensions.k8s.io/v1 false CustomResourceDefinitionapiservices apiregistration.k8s.io/v1 false APIServicetokenreviews authentication.k8s.io/v1 false TokenReviewselfsubjectaccessreviews authorization.k8s.io/v1 false SelfSubjectAccessReviewselfsubjectrulesreviews authorization.k8s.io/v1 false SelfSubjectRulesReviewsubjectaccessreviews authorization.k8s.io/v1 false SubjectAccessReviewcertificatesigningrequests csr certificates.k8s.io/v1 false CertificateSigningRequestflowschemas flowcontrol.apiserver.k8s.io/v1beta1 false FlowSchemaprioritylevelconfigurations flowcontrol.apiserver.k8s.io/v1beta1 false PriorityLevelConfigurationnodes metrics.k8s.io/v1beta1 false NodeMetricsingressclasses networking.k8s.io/v1 false IngressClassruntimeclasses node.k8s.io/v1 false RuntimeClasspodsecuritypolicies psp policy/v1beta1 false PodSecurityPolicyclusterrolebindings rbac.authorization.k8s.io/v1 false ClusterRoleBindingclusterroles rbac.authorization.k8s.io/v1 false ClusterRolepriorityclasses pc scheduling.k8s.io/v1 false PriorityClasscsidrivers storage.k8s.io/v1 false CSIDrivercsinodes storage.k8s.io/v1 false CSINodestorageclasses sc storage.k8s.io/v1 false StorageClassvolumeattachments storage.k8s.io/v1 false VolumeAttachment[root@master object_manage]#
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~