##  容器编排系统,其实就是帮我们管理容器的

##  以集群的方式工作,n个master+n个工作节点,n>=1


## 主节点来指挥工作,有决策者,调度者,秘书部,资料库等
## 从节点来运行应用工作的,都是厂长通过秘书部来进行交流



 

## k8s的集群部署方式:一定要安装docker和kubelet(厂长,负责帮我们把核心组件启动起来)   

kubectl:我们输入命令行要用的前缀
        应用一下文件,让文件生效:kubectl apply -f 【文件名】
        
        查看default命名空间:kubectl get ns
        
        查看pod:kubectl get pod
        创建pod:kubectl run 【pod的名字】 --image=【镜像名】
        查看pod的情况:kubectl describe pod 【pod的名字】
        
        
    kubeadm:帮我们管理集群的,可以快速的安装k8s
    1.输入kubeadm init,就会帮我们初始化
    2.从节点输入kubeadm join,就会加入集群



    
## k8s的名称空间(命名空间):namespace是用来隔离资源的 不隔离网络

   创建方式:
    1.kubectl create ns 命名空间的名字
    2.yaml:格式如下
                apiVersion:v1
                kind:Namespace
                metadata:
                   name:命名空间的名字
                   

## k8s的 pod,是运行中的多个容器的组合,容器是docker的容器

    创建方式:
    1.kubectl run 【pod的名字】 --image=【镜像名】
    2.yaml:格式如下
                apiVersion:v1
                kind:Pod
                metadata:
                  labels:
                     run:【pod的名字】 
                    name:【pod的名字】 
                spec:
                  containers:
                    - image:【镜像】 
                      name:【容器的名字】 
                    - image:【镜像】 
                      name:【容器的名字】   
                      ......
                      
    删除方式:
    1.命令行
    2.可视化界面删除 yaml


## 使用Deployment部署应用:删除pod后会立刻在重启一个pod,只有删掉deployment才会真正删掉pod

    1.创建和删除
    创建:kubectl create deployment 【pod的名字】 --image=镜像名 
    删除:kubectl delete deployment 【部署应用的名字】
    创建多个:kubectl create deployment 【pod的名字】 --image=镜像名 --replicase=【n】
    
    2.扩容 缩容
    kubectl scale deployment/【部署的应用名字】 --replicase=【n】
    
    3.自愈 故障转移
    
    4.滚动更新
    kubectl set deployment/【部署的应用名字】 【旧镜像名】=【新的镜像名】 --record
    
    5.版本回退
    查看历史记录:kubectl rollout history deployment/【部署的应用名字】 
    执行回滚(回到上次):kubectl rollout undo deployment/【部署的应用名字】
    执行回滚(指定本版):kubectl rollout undo deployment/【部署的应用名字】 --to-revision=【n】
 


## service:就是多个pod合成一组,帮我们分发用户的请求到不同的pod上(服务发现机制),service的ip在集群内有效

    1.设置serviceip地址:kubectl repose deployment 【部署的应用名字】 
                       --port==【service的port】
                       --target-port=【部署的应用里的容器port】
                       --type=clusterIP(集群内 访问)  / --type=NodePort(集群外也可以访问)
                     
    2.查看service:kubectl get service                


## Ingress: 类似nginx,就是由nginx做出来的,service的统一网关入口(用来负载均衡service),service是pod的入口(用来负载均衡pod)

    1.可以根据域名映射到IP,修改yaml文件就可以做到
    
    2.路径重写:rewrite
    
    3.限流:
            例子:每秒一次访问
            annotations:
                    nginx.ingress.kubernetes.io: "1"



                    
## 存储抽象:跳过了


## kubershpere:其实就是k8s的可视化界面
     
     1.安装方式:
        1.1  kubernetes安装
        1.2  linux单节点安装
        1.3  linux多节点安装


    

Logo

开源、云原生的融合云平台

更多推荐