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