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" "-"

 

posted @ 2023-02-12 21:29  中仕  阅读(2)  评论(0编辑  收藏  举报