[toc]

一、概述

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

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

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

kubectl get pod -n kube-system

image.png

二、语法及应用示例

1. 指定空间,运行pod

语法:创建并运行Pod

kubectl run (Pod的名称) [参数]
# --image 指定Pod的镜像
# --port 指定端口
# --namespace 指定namespace

示例:在名称为dev的namespace下创建一个Nginx的Pod

kubectl run nginx --image=nginx:1.17.1 --port=80 --namespace=dev

image.png

2. 指定空间查询所有pod

语法: 查询所有Pod的基本信息

kubectl get pods [-n 命名空间的名称]

示例:查询名称为dev的namespace下的所有Pod的基本信息

kubectl get pods -n dev

image.png

3. 指定空间查看详情

语法:查看Pod的详细信息

kubectl describe pod pod的名称 [-n 命名空间名称]

示例:查看名称为dev的namespace下的Pod的名称为nginx的详细信息

kubectl describe pod nginx -n dev

image.png

4. pod访问

语法:Pod的访问

# 获取Pod的IP
kubectl get pods [-n dev] -o wide
# 通过curl访问
curl ip:端口

示例:访问Nginx的Pod

kubectl get pods -n dev -o wide
curl 10.244.2.7:80

image.png

5. 删除pod

语法:删除指定的Pod

kubectl delete pod pod的名称 [-n 命名空间]

示例:删除Nginx的Pod

kubectl delete pod nginx -n dev

image.png

删除后发现会继续创建

kubectl delete deployment nginx1 -n dev

image.png

6. 配置形式创建和删除pod

示例:命令式对象配置

  1. 新建pod-nginx.yaml:
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: dev
spec:
  containers:
  - image: nginx:1.17.1
    imagePullPolicy: IfNotPresent
    name: pod
    ports: 
    - name: nginx-port
      containerPort: 80
      protocol: TCP
  1. 执行创建和删除命令:
kubectl create -f pod-nginx.yaml
kubectl delete -f pod-nginx.yaml

image.png

Q.E.D.


只有创造,才是真正的享受,只有拚搏,才是充实的生活。