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

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

【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简明讲义(一))