• k8s入门之pod(四)


    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
    

    更改nginx容器的index.html内容

    echo "hello,pod" >> /usr/share/nginx/html/index.html
    

    再次访问mynginx

    curl 10.244.218.1
    

    可以看到index.html首页内容已经发生了变化

    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
    
  • 相关阅读:
    详解操作系统的运行机制
    vulnhub sunset: solstice
    树和森林知识
    工业检测中物距、像距和焦距的关系&&相机视野的计算方法
    合作对策模型的简单实现
    线性表-----栈(栈的初始化、建立、入栈、出栈、遍历、清空等操作)
    S6---ZYNQ硬件板级原理图实战导学
    简单线性规划问题
    python在nacos注册微服务
    Pyside6/PyQt6的QTreeWidget如何添加多级子项,如何实现选中父项,子项也全部选中功能,源码示例
  • 原文地址:https://www.cnblogs.com/chuandao/p/16163649.html