pod是k8s项目中的最小编排单位,它是运行中的一组(一个或多个)容器,这些容器共享存储、网络、调度等资源,pod是一个逻辑概念,同一个名称空间下不同pod可以通过ip互相访问。
一、通过命令行方式管理
1.创建
在dev名称空间下创建名称为myNginx的pod,如果不指定-n参数,则默认创建在default名称空间下
kubectl run myNginx --image=Nginx -n dev
2.查看dev名称空间下所有pod的简单信息
kubectl get pod -n dev
创建pod需要时间,尤其是节点上没有该镜像时,还需要下载镜像,可以看到pod的Status状态会随着时间而改变,最后变成Running表示pod启动成功
3.查看dev名称空间下所有pod的详细信息
kubectl get pod -n dev -owide --show-labels
结果截图如下
NODE:表示该pod被调度了哪个worker节点上
IP:k8s会为每个pod分配一个ip,集群中的任意一个机器以及任意的应用都能通过此ip来访问这个Pod
在master节点上可以通过curl ip访问pod
# 默认是80端口,所以访问的是pod中的Nginx容器
curl 10.244.218.1
4.根据标签检索pod
kubectl get pod -n dev -owide --show-labels -l app=Nginx
5.查看pod的描述信息
kubectl describe pod myNginx -n dev
其中Events事件可以查看到pod被创建的详细过程
6.查看Pod的运行日志
kubectl logs myNginx -n dev
7.进入pod容器
kubectl exec -it myNginx /bin/bash -n dev
echo "hello,pod" >> /usr/share/Nginx/html/index.html
再次访问myNginx
curl 10.244.218.1
8.监控pod状态命令
使用k8s的-w参数
kubect get pod -n dev -w
使用linux命令
watch -n 1 kubectl get pod -n dev
9.删除pod
kubectl delete pod myNginx -n dev
二、使用yaml管理
1.在pod里部署两个容器
一个pod里面不能部署相同镜像的容器,端口冲突
(1)创建yaml文件
vi pod-Nginx-tomcat.yaml
(2)编写pod文件内容,定义两个容器,一个为Nginx,一个为tomcat
apiVersion: v1
kind: Pod
Metadata:
labels:
web: server
name: web-server
namespace: dev
spec:
containers:
- image: Nginx
name: Nginx
- image: tomcat:9.0
(3)使用kubectl apply创建pod
kubectl apply -f pod-Nginx-tomcat.yaml
(4)自动监控创建过程
kubectl get pod -n dev -w
2.查看pod描述
kubectl describe pod web-server -n dev
3.在节点上访问pod
(1)查看pod的ip
kubectl get pod -n dev -owide
(2)通过此ip访问pod中的Nginx容器
curl 10.244.218.2
(3)通过此ip访问pod中的tomcat容器
curl 10.244.218.2:8080
4.进入pod里面访问服务
(1)进入pod里面的Nginx容器
kubectl exec web-server --container Nginx -it /bin/bash -n dev
(2)在容器内,以下命令均可访问,证明了pod里网络共享
curl localhost
curl localhost:8080
curl 10.244.218.2
curl 10.244.218.2:8080
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。