Kubernetes基本概念的学习-Pod
1、Pod概念
Pod是一个逻辑抽象概念,Kubernetes创建和管理的最小单元,一个Pod由一个或者多个容器构成。
2、Pod特点:
一个Pod可以理解为是一个应用实例,提供服务;
Pod中容器始终部署在一个Node上
Pod中容器共享网络、存储资源
3、Pod主要用法
运行单个容器:最常见的用法,在这种情况下,可以将Pod看作是单个容器的抽象封装;
运行多个容器:属于边车模式(Sidecar),通过在Pod中定义专门容器,来执行主页业务容器需要的辅助工作,这样好处是将辅助功能同煮业务容器解耦,实现独立发布和功能重用。
例如: 日志收集 应用监控
Pod运行多容器: 共享网络和共享存储
共享存储:容器通过数据卷共享数据
共享网络:引入一个infra container的
4、创建pod测试共享存储
[root@master01 ~]# vi deployment-test.yaml apiVersion: apps/v1 kind: Deployment metadata: name: web spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: web image: nginx:1.17 volumeMounts: - name: log mountPath: /data - name: box image: busybox command: - sleep - 24h volumeMounts: - name: log mountPath: /data2 volumes: - name: log emptyDir: {}
查看pod的READY变成两个
[root@master01 ~]# kubectl get pod NAME READY STATUS RESTARTS AGE web-65544fd968-46fv7 2/2 Running 0 2m41s web-65544fd968-g4fdr 2/2 Running 0 2m41s web-65544fd968-vflv8 2/2 Running 0 2m41s
进入一个pod的其中一个容器创建个文件
[root@master01 ~]# kubectl exec -it web-65544fd968-46fv7 -c web /bin/bash kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead. root@web-65544fd968-46fv7:/# cd /data root@web-65544fd968-46fv7:/data# touch 1.txt
进入pod的另外一个容器中查看,可以看到前面创建的文本文件
[root@master01 ~]# kubectl exec -it web-65544fd968-46fv7 -c box /bin/sh kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead. / # / # ls bin data2 dev etc home proc root sys tmp usr var / # cd data2/ /data2 # ls 1.txt
5、 pod常用命令
查看pod的详细信息:
[root@master01 ~]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES web-65544fd968-46fv7 2/2 Running 0 5h13m 10.244.75.93 work02 <none> <none> web-65544fd968-g4fdr 2/2 Running 0 5h13m 10.244.75.92 work02 <none> <none> web-65544fd968-vflv8 2/2 Running 0 5h13m 10.244.205.219 work01 <none> <none>
查看日志,-f查看实时日志
[root@master01 ~]# kubectl logs web-65544fd968-46fv7 -c web -f 10.244.241.64 - - [12/Feb/2023:13:23:07 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"