Pod

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

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

image-20200407121501907

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

[root@master ~]# kubectl get pod -n kube-system

[root@master ~]# kubectl get pod -n kube-system -o wide

创建并运行

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

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

[root@master ~]# kubectl create ns dev
[root@master ~]# kubectl run nginx --image=nginx:latest --port=80 --namespace dev

查看pod信息
# 查看Pod基本信息
[root@master ~]# kubectl get pods -n dev

# 查看Pod的详细信息
[root@master ~]# kubectl describe pod nginx -n dev

 注:通常看最后的Events,用来排错

排错示例

指定一个不存在的镜像版本

[root@master ~]# kubectl run nginx1 --image=nginx:11111 --port=80 --namespace dev

[root@master ~]# kubectl get pods -n dev

[root@master ~]# kubectl describe pod nginx1 -n dev #查看Events显示的信息

访问Pod
# 获取PodIP
[root@master ~]# kubectl get pods -n dev -o wide

#访问Pod
[root@master ~]# curl http://10.244.1.23:80

删除指定Pod

# 删除指定Pod

kubectl delete pod pod的名称 [-n 命名空间]
[root@master ~]# kubectl delete pod nginx -n dev

注:在1.18版本及以后
kubectl run 产生的pod能直接删除
kubectl run nginx --image=nginx:latest --port=80 --namespace dev
kubectl delete pod nginx --namespace dev

通过deployment等用pod控制器产生的pod不能直接删除,会拉起一个新的pod
kubectl create deployment web --image=nginx
kubectl delete deployment web

yaml配置操作

创建一个pod-nginx.yaml,内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: nginx    #这里的名字是pod的名字
  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

参考

黑马B站k8s课程https://www.bilibili.com/video/BV1Qv41167ck/
https://gitee.com/yooome/golang/blob/main/k8s%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B-%E8%B0%83%E6%95%B4%E7%89%88/k8s%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B.md
https://www.yuque.com/fairy-era/yg511q/xyqxge

 

原文地址:http://www.cnblogs.com/gys001/p/16865122.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性