sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

pod概念,部署pod应用

zoukankan      html  css  js  c++  java
  • pod概念,部署pod应用

    一:kubectl工具的使用

    kubectl 是操作k8s的命令行工具,能连接到apiserver上实现k8s中各种资源的增删改查。

    kubectl --help 查看kubectl的帮助命令,有哪些参数,常用的如下:
      get:列举资源信息,如pod,service,deployment等
      kubectl get pods
      kubectl get deployment
      kubectl get service
      describe:列举资源的详细信息
      logs:查看pod输出的日志信息
      edit:编辑服务器上定义的资源
      delete:删除指定的资源
      exec:可以交互式的登录到pod中的容器
      apply:对资源做配置
      explain:显示资源文档信息,可以查看某个资源的具体用法
      run:运行一个pod实例

    如:kubectl run nginx --image=nginx 可以创建一个nginx应用(也就是创建一个pod,这块没太明白。此条命令表示控制器名字叫Nginx、pod的名字是控制器名字+一串随机数字)


    实际创建pod应用都是通过编写资源清单文件进行创建

    1、默认的空间下,是没有任何东西的。需要指定资源空间名称。

    目前没太明白get pods 和 get deployment的区别。

     2、pod相当于我们tomcat容器,我们就可以把应用部署到pod中,所以pod充当的是一个逻辑主机的角色;

    一般来说,用户不应该直接创建Pod,即使创建单个的Pod也应该通过控制器创建。在集群范围内,控制器为Pod提供自愈能
    力,以及副本和部署管理。(控制器指的是deployment吗)

    3、和pod相关的API对象

    kubectl explain pods 可以看到和pod相关的api对象有哪些,也就是通过资源清单部署一个pod时需要哪些字段。

    apiVersion
    apiVersion定义了此对象表示的版本化模式。服务器应将已识别的模式转换为最新的内部
    值,并可能拒绝无法识别的值。更多信息:
    https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
    kind
    Kind是表示此对象表示的REST资源的字符串值。服务器可以从客户端提交请求的端点推断出
    这一点
    metadata
    标准对象的元数据。更多信息:
    https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
    spec
    指定容器的所需行为。更多信息:
    https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-andstatus
    status
    最近观察到了pod的状态。此数据可能不是最新的。由系统填充。只读。更多信息:
    https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-andstatus

    4、通过定义一个pod资源清单yaml创建pod

    查看定义资源清单需要的命令
    kubectl explain pods.apiVersion
    kubectl explain pods.kind
    kubectl explain pods.metadata
    kubectl explain pods.spec

    cat pod.yaml

     kubectl apply -f pod.yaml 通过yaml文件创建一个pod应用,然后查看pod运行情况。

     (5)pod生命周期

    (6)常见的pod状态

    (7)node lable

    (1)查看nodes节点的标签
    kubectl get nodes --show-labels
    (2)给node节点打标签:
    kubectl label nodes node01 node011=haha
    kubectl get nodes --show-labels 在查看一下,显示如下,可以看到node01上有
    node011这个标签了
    (3)节点选择器

      nodeSelector <map[string]string>
        NodeSelector is a selector which must be true for the pod to fit on a node.Selector which must match a node's labels for the pod to be scheduled on
        that node. More info:
    https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
    上面有一个nodeSelector,这个是节点标签选择器,可以限制pod运行在哪个节点上
    kubectl get pods -o wide

     从上面可以看到web运行在node1上,如果我们想要让它运行在master1上,就需要用到节点选择器

    nodeSelector:
    node011: haha #这个node011是我们给node01节点打的标签,在上面已经操作过
    cat pod.yaml 看到完整的文件如下:

     kubectl delete -f pod-demo.yaml

    kubectl create -f pod-demo.yaml
    kubectl get pods -o wide 显示pod-demo运行在node01上了
    如果node01和node02都有node011这个标签,那么nodeSelector则根据调度策略调度pod到相
    应的node节点上
    节点名称
    nodeName:指定pod节点运行在哪个具体node上,不存在调度说法

    补充:1、查看某个pod的具体信息

    2、进到pod下面某个容器内部

     3、

      

  • 相关阅读:
    js中break/continue
    js实现连接的两种放法
    jsdate对象toLocaleString()方法小结
    接口学习小节
    c# 装箱和拆箱
    c#数据类型学习
    return 作用域
    js中break/continue
    ArcGIS Runtime for Android开发教程V2.0(9)基础篇查询检索
    【转】ArcGIS 10.1 地图发布以及缓存管理
  • 原文地址:https://www.cnblogs.com/maowuyu-xb/p/11949891.html
Copyright © 2011-2022 走看看
http://t.zoukankan.com/maowuyu-xb-p-11949891.html
posted on 2022-09-03 01:04  sunny123456  阅读(528)  评论(0编辑  收藏  举报