您现在的位置是:首页 >其他 >(四)K8S核心资源nameSpace与pod网站首页其他
(四)K8S核心资源nameSpace与pod
简介(四)K8S核心资源nameSpace与pod
1.名称空间 NameSpace(ns)
简介:
Namespace(名称空间)是 Kubernetes 中用于将一组资源隔离的一种机制。在同一个 Kubernetes 集群中,可以创建多个 Namespace,并在不同的 Namespace 中创建相同名称的资源,这些资源的名称在各自的 Namespace 中是唯一的。这种机制使得在 Kubernetes 集群中可以实现资源隔离,避免资源之间的命名冲突和资源使用冲突,还可以对资源进行更细粒度的管理和控制。
Kubernetes 中的 Namespace 可以用来实现以下目的:
- 以名称空间为单位对资源进行隔离,避免命名冲突和资源使用冲突;
- 将资源进行分组,方便管理和控制;
- 控制资源的访问权限,限制用户或应用程序访问指定 Namespace 中的资源;
- 实现多租户架构,将多个团队或项目的资源分别隔离在不同的 Namespace 中,便于管理和使用。
Kubernetes 会创建四个初始NameSpace名称空间:
- default :没有指明使用其它名字空间的对象所使用的默认名字空间
- kube-system:Kubernetes 系统创建对象所使用的名字空间
- kube-public:是自动创建的,命名空间下的资源可以被所有人访问(包括未认证用户)
- kube-node-lease:集群节点之间的心跳维护
NameSpace操作:
#查看当前 Kubernetes 集群中的 Namespace:
kubectl get ns
#查看命名空间详情
kubectl describe ns <namespace-name>
#创建一个新的Namespace
kubectl create ns <namespace-name>
#删除一个 Namespace(会将该 Namespace 中的所有资源都删除,包括 Pod、Service、Deployment 等)
kubectl delete ns <namespace-name>
推荐使用基于配置文件方式namespace.yaml操作
#创建:
kubectl create -f namespace.yaml
#创建:
kubectl apply -f namespace.yaml
#删除:
kubectl delete -f namespace.yaml
2. K8S中最小的单位Pod
简介:
Pod是Kubernetes最基本的调度单位,是一个由一个或多个紧密关联的容器组成的集合。Pod是最小的部署单元,可以理解为是一个应用程序的实例。
Pod中的容器共享网络和存储资源,并在同一节点上运行,这些容器可以共同协作完成应用程序的不同功能。Pod作为一组容器的逻辑主机,具有单个IP地址和主机名,容器共享Pod中的网络命名空间,因此可以使用localhost相互通信。
创建方式分类:
- 自主创建:直接创建出来的Pod,这种pod删除后就没有了,也不会自动重建
- 控制器创建:通过控制器创建的pod,这类Pod删除了之后还会自动重建
Pod存储:
Pod可以使用Volume将数据存储在磁盘上。Volume会挂载到Pod所在的节点上,而不是Pod本身。这样就保证了即使Pod被删除了,Volume上的数据也不会被删除。Pod中 的所有容器都可以访问共享的Volume。
操作命令:
#查看创建的资源
kubectl get pod,deploy
# 删除nginx pod,如果是靠deploy控制器创建的pod, 直接删除则会自动创建新的;
kubectl delete pod pod名称 -n 名称空间
#通过控制器创建pod,则删除控制器即可
kubectl delete pod控制器名称 -n 名称空间
# 运行pod,指定名称空间
kubectl run nignx-pod --image=nginx:1.23.0 --port=80 --namespace 名称空间
# 通过 deployment控制器导出yaml文件,指定名称空间
kubectl create deployment nginx --image=nginx:1.23.0 --namespace 名称空间 -o yaml --dry-run=client > nginx.yaml
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。