Pod的使用

Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。

Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。

image-20220516153844775

kubernetes在集群启动之后,集群中的各个组件也都是以Pod方式运行的。可以通过下面命令查看:

kubectl get pod -n kube-system

image-20220516154101170

创建并运行

kubernetes没有提供单独运行Pod的命令,都是通过Pod控制器来实现的

# 命令格式: kubectl run (pod控制器名称) [参数] 
# --image  指定Pod的镜像
# --port   指定端口
# --namespace  指定namespace
kubectl run nginx --image=nginx:1.17.1 --port=80 --namespace dev 

注意先创建名称空间

image-20220516154749048

查看pod信息

查看Pod基本信息

# 查看Pod基本信息
kubectl get pods -n dev

image-20220516154918390

查看Pod的详细信息

# 查看Pod的详细信息
kubectl describe pod nginx -n dev

image-20220516155016460

访问Pod

获取podIP

# 获取podIP
kubectl get pods -n dev -o wide

image-20220516155323019

访问POD

curl 10.244.1.12

image-20220516155433057

删除指定Pod

删除指定Pod

# 删除指定Pod
kubectl delete pod nginx-64777cd554-wdvk7 -n dev

image-20220516160218549

查询当前namespace下的Pod控制器

# 此时,显示删除Pod成功,但是再查询,发现又新产生了一个 
kubectl get pods -n dev

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

# 先来查询一下当前namespace下的Pod控制器
kubectl get deployment -n  dev

image-20220516160427377

删除此Pod Pod控制器

# 接下来,删除此Pod Pod控制器
kubectl delete deployment nginx -n dev

# 稍等片刻,再查询Pod,发现Pod被删除了
kubectl get pods -n dev

image-20220516160528759

配置操作

创建一个pod-nginx.yaml

vi pod-nginx.yaml

内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: dev
spec:
  containers:
  - image: nginx:latest
    name: pod
    ports:
    - name: nginx-port
      containerPort: 80
      protocol: TCP

然后就可以执行对应的创建和删除命令了:

创建:

kubectl create -f pod-nginx.yaml

删除:

kubectl delete -f pod-nginx.yaml
posted @ 2022-05-16 16:13  makalo  阅读(195)  评论(0编辑  收藏  举报