k8s中的组件

发布于:2025-03-22 ⋅ 阅读:(16) ⋅ 点赞:(0)
1.namespace

Namespace 用于将集群资源划分为不同的逻辑组,方便管理和隔离

kubectl get namespace 查看所有逻辑组

kubectl describe namespace <namespace-name> 查看某个逻辑组信息详情

kubectl create namespace ... 创建逻辑组

kubectl delete namespace 。。删除逻辑组

2.pod

pod是k8s集群进行管理的最小单元,程序要运行必须在部署容器中,而容器必须存在pod中 pod可以认为是容器的封装 一个pod可以存在多个pod

kubectl get pods 查看pod

kubectl run nginx --image=镜像名 --ports=80 --namespace dev 创建一个名为nginx的pod并且放在dev下端口为80

kubectl get pod -n dev -o wide 查看pod详细信息

kubectl delete pod nginx -n dev 删除dev下的nginx这个pod

kubectl get pod -n kube-system 查看集群默认的一些组件

3.label

kubectl label pod nginx -n dev version=1.0

给在dev下名为nginx的pod打一个version=1.0的标签

kubectl label pod nginx -n dev version=2.0 --overwrite

更新一个version=2.0的标签
kubectl get pod -n dev -l "version=2.0"  --show-labels

dev中筛选version=2.0的pod 

kubectl label pod nginx -n dev version-

删除名为nginx标签version

4.Deployment

是pod控制器 用于管理pod 确保pod资源始终保持符合预期的状态 当pod资源出现资源故障时候 去进行重建或重启

kubectl create deployment timinglee1 --image nginx:1.23 --replicas 4

创建一个名为timinglee的控制器并自动运行pod 且pod数量

kubectl scale deployment nginx --replicas 3

将pod控制器扩容为3个 (缩容的话就是减少数量)

 kubectl get deployment,pod 

查看控制器下的pod

kubectl get pods -n dev --show-labels 

通过标签选择器查看dev下的pod

kubectl delete deploymend timinglee

删除名为timinglee的控制器 底下的pod也全部删除

5.service

pod ip会随着pod的重建而产生变化

pod ip只是集群内可见的虚拟ip 外部无法全部访问

service可以看作一组同类pod对外的的访问接口 借助service 

kubectl expose deployment hxd --name=svc-nginx --type=ClusterIP --port 80 --target-port 80
创建一个名为svc-nginx 的server端口为80对应 pod端口也是80

(ClusterIP只能在集群内部访问,NodePort才能在集群外部访问)

kubectl get svc svc-nginx -o wide

查看详情

kubectl  delete svc svc-nginx

删除service