Pod
Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。
Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。
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
标签:kubectl,入门,--,nginx,master,Pod,k8s,pod From: https://www.cnblogs.com/gys001/p/16865122.html