美文网首页
k8s系列(二):Pods与Nodes

k8s系列(二):Pods与Nodes

作者: 卡卡rot | 来源:发表于2018-10-12 11:26 被阅读204次

    目标

    • 了解Kubernetes Pods
    • 了解Kubernetes Nodes
    • kubectl排查故障

    Kubernetes Pods


    image-20181012110129014.png

    Pod是Kubernetes抽象出来表示一组应用容器(比如Docker、rkt),还有这些容器共享的资源。这些资源包括:

    • 共享存储,比如Volumes
    • 网络,比如独立的集群IP地址
    • 如何去运行每个容器的信息,比如容器镜像版本、要使用的端口

    Pod塑造出一个应用专用的"逻辑主机",它能包含不同的应用容器(紧密耦合的)。举例来说:一个Pod可以包含Node.js应用和另外一个产生Node.js webserver需要数据的应用。Pod的容器共享IP地址和端口空间,可以互相协作和调用,它们在同一个Node的上的共享上下文。

    Pod是Kubernetes平台上的原子单位。当我们在Kubernetes上创建一个Deployment时,它将创建附带容器的Pods。每个Pod与被调度的Node绑定直到被删除。万一Node故障了,一个新Pod会被调度到其它可用的Node上。

    Nodes


    image-20181012110100307.png

    Pod总是运行在Node之上。Node是Kubernetes中的一个工作机器,通常是一个虚拟机或者物理机。每个Node被Master管理。一个节点能有多个pod,同时Kubernetes master在集群之上自动调度pod。Master的自动调度考虑到每个Node上的可用资源。

    每个Kubernetes Node至少运行:

    • Kubelet,一个负责Kubernetes Master和Node之间通讯的进程;它管理着运行在机器上Pods和Containers
    • 容器运行时(比如Docker,rkt),负责从registry拉取容器镜像,取出容器,运行应用。

    kubectl排查故障


    通过kubectl可以获取已部署应用的信息以及它们的环境。大多数常规操作可以通过以下kubectl命令来完成:

    • kubectl get - 列出resources
    • kubectl describe - 显示resource的详细信息
    • kubectl logs - 打印pod中container的日志
    • kubectl exec - 对pod的container执行一个命令

    在应用部署之后,你可以通过这些命令去查看它们的状态、它们运行在哪里以及它们的配置。

    注:参考https://kubernetes.io/docs/tutorials/kubernetes-basics/explore/explore-intro/翻译,部分内容有删减及修改。

    相关文章

      网友评论

          本文标题:k8s系列(二):Pods与Nodes

          本文链接:https://www.haomeiwen.com/subject/uaiwaftx.html