美文网首页
【原创纯手打】K8S简明讲义(一)

【原创纯手打】K8S简明讲义(一)

作者: RoyZhang_0427 | 来源:发表于2020-06-11 14:31 被阅读0次

    ======================基本概念==========================

    【1】cluster是计算 存储 网络资源的集合

    master是主节点,负责资源调度,理论上奇数倍运行高可用

        node的职责是运行容器,由master管理,可以打标签,虚拟机物理机均可

        pod为k8s中最小的运行单元 可以是单独的容器或者是容器集合

        controller类型:

            「1」deployment:管理pod的多个副本  最常用

            「2」ReplicaSet:实现pod多副本管理,使用deployment的时候会自动创建ReplicaSet,也就是说

              deployment是通过ReplicaSet来管理多副本的,通常不需要直接使用

            「3」DaemonSet:每个节点只运行一个pod

            「4」StatefuleSet:保证每个pod副本在整个生命周期名字不变,其他的每次重新运行会改名

            「5」job:用于任务结束自动删除

          Service:定义了外界访问一组pod的方式,为pod提供负载,通常运行和访问分别由deployment和service负责

          Namespace:多个用户同时使用一个集群区分的关键就是命名空间,完成的逻辑划分

      ReplicationController (Rc)会根据标签选择器管理符合其标签的所有pod,并维持在replicas设置的数量上。

    【2】pod和deployment的关系

          (1)pod是单一或一组容器的合集

          (2)deployment是pod版本管理的工具 用来区分不同版本的pod

          (3)单独创建pod的时候就不会有deployment出现,但是创建deployment的时候一定会创建    pod,因为pod是一个基础的单位。

    【3】deployment部署的pod副本会分布在node上每个node可以运行多个pod

              DaemonSet每个node上只运行一个pod副本

    【4】容器分为两类 服务类和工作类

    服务类 持续运行(Deployment DaemonSet ReplicaSet)

    工作类 处理完自动退出(job)

    【5】service代表了一组pod,service有自己不变的ip,客户端只需要访问service的ip

    ======================基础篇==========================

    查看集群状态

    kubectl get all

    查看所有的命名空间

    kubectl get namespace

    1、查看节点状态

    kubectl get nodes

    2、查看pod状态

    kubectl get pod -n default -o wide

    kubectl get pod --all-namespaces -o wide

    3、查看pod具体情况

    kubectl describe podjenkins-6dd65f9d9-b7494--namespace=default

    重点

    4、运行容器(在不同namespace中可以重名)

    kubectl run jenkins --image=jenkins/jenkins:lts --replicas=4 -n app

    5、查看部署的应用

    kubectl get deployment -n app -o wide(指定namespace)

    kubectl get deployment --all-namespaces -o wide(指定全namespace)

    kubectl get deployment jenkins -n app -o wide (指定应用)

    6、查看deployment的描述

    kubectl describe deployment  jenkins

    7、查看副本(deployment是由ReplicaSet来管理pod)

    kubectl get ReplicaSet

    8、查看pod的创建过程

    kubectl describe ReplicaSet

    9、文件方式创建deployment (常用)

    kubectl apply -f jenkins-deployment.yaml

    Deployment.yaml.note

    10、删除应用

    kubectl delete deployment jenkins

    kubectl delete -f jenkins-deployment.yaml

    11、修改运行副本数(更改副本后)(伸缩)

    kubectl apply -f jenkins-deployment.yaml

    12、将k8s master作为主节点

    kubectl taint node k8s-master node-role.kubernetes.io/master-

    13、取消将k8s master作为主节点

    kubectl taint node k8s-master node-role.kubernetes.io/master="":NoSchedule

    14、查看现有节点的标签

    kubectl get node --show-labels

    15、用label给节点打标签(控制部署位置)

    kubectl label nodeizm5ehcv43i5tpesna9653zapp=jiankm

    重新运行 kubectl apply -f jenkins-deployment.yaml

    16、删除标签(删除后部署的应用不会变)

    kubectl label nodeizm5ehcv43i5tpesna9653zapp-

    17、获取系统daemon组件

    kubectl get daemonset --namespace=kube-system

    18、创建daemonset应用

    kubectl create -f jenkins-daemonset.yaml

    19、查看daemonset副本配置

    kubectl edit daemonset jenkins -n app

    20、查看job状态

    kubectl get job

    21、kubectl获取日志

    kubectl logs jenkins-56d7c8bf69-ht798 -n app

    相关文章

      网友评论

          本文标题:【原创纯手打】K8S简明讲义(一)

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