k8s实战入门——Pod
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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性