0
点赞
收藏
分享

微信扫一扫

k8s 之管理 Pod 常用命令

陆佃 2022-03-30 阅读 52

Pod 是一个逻辑抽象概念,Kubernetes 创建和管理的最小单元,一个 Pod 由一个容器或多个容器组成。

Pod 特点

  • 一个 Pod 可以理解为是一个应用实例,提供服务
  • Pod 中容器始终部署在一个 Node 上
  • Pod 中容器共享网络、存储资源

Pod 主要用法

  • 运行单个容器:最常见的用法,在这种情况下,可以将 Pod 看做是单个容器的抽象封装
  • 运行多个容器:属于边车模式(Sidecar),通过在 Pod 中定义专门容器,来执行主业务容器需要的辅助工作,这样好处是将辅助功能同主业务容器解耦,实现独立发布和能力重用。例如:日志收集、应用监控。
    •     共享存储:容器通过数据卷共享数据
    •     共享网络:引入一个叫 infra container,创建 pod 时先创建,负责 pod 网络管理,自定义的容器都会加入到这个网络

测试示例 deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: pod-test
  namespace: voip
spec:
  replicas: 3
  selector:
    matchLabels:
      app: pod-test
  template:
    metadata:
      labels:
        app: pod-test
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        volumeMounts:
        - name: log
          mountPath: /data
        ports:
        - containerPort: 80
      - name: busybox
        image: busybox
        command:
        - sleep
        - 24h
        volumeMounts:
        - name: log
          mountPath: /data2
      volumes:
        - name: log
          emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: pod-test
  namespace: voip
spec:
  selector:
    app: pod-test
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: NodePort

 部署

kubectl apply -f deploy.yaml

查看某个命名空间下的 pod

kubectl get pods -n voip

NAME                        READY   STATUS    RESTARTS   AGE

pod-test-7646bbb5bf-7m6ks   2/2     Running   0          4m34s

pod-test-7646bbb5bf-8652t   2/2     Running   0          4m34s

pod-test-7646bbb5bf-r72sg   2/2     Running   0          4m34s

进入第一个 pod 的 nginx 容器内

kubectl exec -it pod-test-7646bbb5bf-7m6ks -c nginx -n voip -- bash

cd /data

touch access.log

ls

进入第一个 pod 的 busybox 容器内

kubectl exec -it pod-test-7646bbb5bf-7m6ks -c busybox -n voip -- sh

cd /data2

ls

ifconfig

netstat -antp
/data2 # netstat -antp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -


 

创建 Pod

kubectl run nginx --image=nginx

查看 Pod

kubectl get pods

kubectl describe pod nginx

查看日志

kubectl logs nginx -f

删除 Pod

kubectl delete pod nginx
举报

相关推荐

0 条评论