shenmingbusujiku / Linux

关于Linux的学习和项目
0 stars 0 forks source link

pod资源管理 #23

Open shenmingbusujiku opened 2 years ago

shenmingbusujiku commented 2 years ago

Namespace

Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离 或者多租户的资源隔离。默认是default。 查看

1 查看所有的ns 命令:kubectl get ns

2 查看指定的ns 命令:kubectl get ns ns名称

3 指定输出格式 命令:kubectl get ns ns名称 -o 格式参数

kubernetes支持的格式有很多,比较常见的是wide、json、yaml

4 查看ns详情 命令:kubectl describe ns ns名称

创建 kubectl create ns ns名称 删除 kubectl delete ns ns名称 配置方式 首先准备一个yaml文件:ns-dev.yaml apiVersion: v1 kind: Namespace metadata: name: dev 然后就可以执行对应的创建和删除命令了: 创建:kubectl create -f ns-dev.yaml 删除:kubectl delete -f ns-dev.yam

Pod

Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。 Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。 kubernetes在集群启动之后,集群中的各个组件也都是以Pod方式运行的。可以通过下面命令查看: kubectl get pod -n kube-system 创建并运行

命令格式: kubectl create deploy (pod控制器名称) [参数]

--image 指定Pod的镜像

--port 指定端口

--namespace 指定namespace

查看pod信息

查看Pod基本信息

kubectl get pods -n ns名称

查看Pod的详细信息

kubectl describe pod podNAME -n ns名称 访问Pod

获取podIP

kubectl get pods -n ns名称 -o wide

访问POD

curl 10.244.1.4 删除指定Pod

删除指定Pod

kubectl delete pod podNAME -n ns名称

此时,显示删除Pod成功,但是再查询,发现又新产生了一个

这是因为当前Pod是由Pod控制器创建的,控制器会监控Pod状况,一旦发现Pod死亡,会立即重建 # 此时要想删除Pod,必须删除Pod控制器

先来查询一下当前namespace下的Pod控制器

kubectl get deploy -n ns名称

接下来,删除此PodPod控制器

kubectl delete deploy NAME -n ns名称

稍等片刻,再查询Pod,发现Pod被删除了

配置操作 apiVersion: v1 kind: Pod metadata: name: nginx namespace: dev spec: containers:

配置方式 apiVersion: v1 kind: Pod metadata: name: nginx namespace: dev labels: version: "3.0" env: "test" spec: containers: