3.pod介绍

pod是k8s的最小调度单位,一个pod中可以包含一个或多个container,pod中的container共享同一个namespace,即不同的container可以通过localhost相互访问

创建pod

kubectl create -f {pod yaml file}

注意:一般不要采用该方法创建pod,建议选用Deployment、replicaset或replicationController

pod_nginx.yml

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80

yml文件解析

  • kind:指定资源类型(pod)

  • metadata:pod的metadata。如名字name,标签labels

  • spec:pod中最关键的部分-容器(容器名字name、容器镜像image、容器暴露端口containerPort)

查看集群健康:kubectl version

删除pod

kubectl delete -f pod_nginx.yml

查看pod

  • 查看pod列表:kubectl get pods

  • 显示pod的详细信息(比如容器在哪,容器ip等):kubectl get pods -o wide

  • 具体表述一个resource(名字,namespace,在哪个节点上,lable,IP地址,container id,image ,port相关信息):kebuctl describe {resource type} {resource name}

进入pod中的容器

  • 方法一:minikube ssh进入节点,docker ps 查看container,通过dockers命令进入到容器中

  • 方法二:kubectl exec -it {pod name} sh 进入到pod中的容器中,当pod有多个容器时,通过加参数进入第二个容器的命令为kubectl exec -it {pod name} -c {container} sh

暴露pod服务

端口映射:kubectl port-forward {podname} {外部端口}:{内部端口}

Last updated

Was this helpful?