Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中,Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。
kubernetes在集群启动之后,集群中的各个组件也都是以Pod方式运行的。可以通过下面的命令查看:
kubectl get pod -n kube-system
1.创建并运行kubernetes没有提供单独运行Pod的命令,都是通过Pod控制器来实现的
#命令格式: kubectl run [pod控制器名称] [参数]
#--image 指定pod的镜像
#--port 指定端口
#--namespace 指定namespace
#运行一个nginx pod
kubectl run nginx --image=nginx:1.7.1 --port=80 --namespace dev
2.查看Pod的详细信息
kubectl get pod -n dev -o wide
#格式:kubectl describe pod pod-name -n namespace
kubectl describe pod nginx-757fbc894c-sd84t -n dev
提示:使用kubectl describe pod 查看pod详细信息中可以通过Events来排错。
3.访问pod
通过查看Pod分配的随机ip和所在的node节点可以在所在的节点访问。
在node2节点上使用curl命令加IP:端口,可以得到我们刚才部署的nginx的欢迎页。
curl 172.17.0.2:80
4.pod的删除
#格式:kubectl delete pod pod-name -n namespace-name
kubectl delete pod nginx-757fbc894c-sd84t -n dev
删了成功了,但是查看的时候还是有一个新的在运行,这是因为当前pod是由pod控制器创建的,控制器会监控pod的状态,一旦发现pod死亡,就会立即创建一个新的pod。所以要想删除pod,则必须要删除pod控制器,删除控制器之后就不会创建新的pod了。
#查看pod 控制器
kubectl get deployment -n dev
#删除pod 控制器
kubectl delete deployment -n dev
5.配置操作
创建一个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
#创建pod通过yaml文件
kubectl create -f pod-nginx.yaml
#删除pod通过yaml文件,这种形式创建的pod,删除后不会创建新的
kubectl delete -f pod-nginx.yaml
好了,pod的介绍就到这里啦。