• 问题问题问题


    1: top命令第三行
    // 第三行表示的是系统CPU的信息


    0.0 us 表示用户空间占用CPU的百分比
    0.2 sy 表示的是内核空间占用CPU的百分比
    0.0 ni 表示用户进程空间内改变过优先级的进程占用CPU百分比
    99.8 id 表示空闲CPU百分比
    0.0 wa 表示等待输入输出的CPU时间百分比
    0.0 hi 表示硬中断占用CPU的百分比
    0.0 si 表示软中断占用CPU的百分比
    0.0 st 用于虚拟CPU的情况,表示被虚拟机偷用掉的CPU时间
    ————————————————
    2: docker容器网络原理:
    我们每启动一个docker容器,docker就会给容器分配一个默认的可用ip
    我们只要安装了docker,就会有一个网卡docker0(bridge)。网卡采用桥接模式,并使用veth-pair技术(veth-pair就是一堆虚拟设备接口,成对出现,一段连着协议,一段彼此相连,充当一个桥梁。) 路由器,各种虚拟接口

    mysql主从:
    三、主从复制的原理(重中之重,面试必问):
    1.数据库有个bin-log二进制文件,记录了所有sql语句。
    2.我们的目标就是把主数据库的bin-log文件的sql语句复制过来。
    3.让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。
    4.下面的主从配置就是围绕这个原理配置
    5.具体需要三个线程来操作:
    1.binlog输出线程:每当有从库连接到主库的时候,主库都会创建一个线程然后发送binlog内容到从库。在从库里,当复制开始的时候,从库就会创建两个线程进行处理:
    2.从库I/O线程:当START SLAVE语句在从库开始执行之后,从库创建一个I/O线程,该线程连接到主库并请求主库发送binlog里面的更新记录到从库上。从库I/O线程读取主库的binlog输出线程发送的更新并拷贝这些更新到本地文件,其中包括relay log文件。
    3.从库的SQL线程:从库创建一个SQL线程,这个线程读取从库I/O线程写到relay log的更新事件并执行。


    步骤一:主库db的更新事件(update、insert、delete)被写到binlog
    步骤二:从库发起连接,连接到主库
    步骤三:此时主库创建一个binlog dump thread线程,把binlog的内容发送到从库
    步骤四:从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log.
    步骤五:还会创建一个SQL线程,从relay log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db.

    server-id  不一样
    log-bin 

    server-id
    relay-log

    4: k8s service

    K8S中Service分为四类,分别是ClusterIP,NodePort,LoadBalancer以及ExternalName

    5:  pod访问 中间件或者service+port  不通排查

    service有没有起来 端口

    service endpoint (有哪些POD 入口) 入口  service  --->POD-->端口

    POD服务正常否

    6:master四大组件

     1:  kuber-apiserver    接口

    2:  controller-manager  POD控制器

    Controller-Manager 作为集群内部的管理控制中心,负责集群内的Node、Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理,当某个Node意外宕机时,Controller Manager会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态

    3: scheduler 资源调度

    4:  etcd   存储

    7: docker file    打包镜像  

    8: ES查看分片

    curl -XGET -uelastic -p http://172.18.35.144:9200/_cat/health?v
    cluster ,集群名称
    status,集群状态 green代表健康;yellow代表分配了所有主分片,但至少缺少一个副本,此时集群数据仍旧完整;red代表部分主分片不可用,可能已经丢失数据。
    node.total,代表在线的节点总数量
    node.data,代表在线的数据节点的数量
    shards, active_shards 存活的分片数量
    pri,active_primary_shards 存活的主分片数量 正常情况下 shards的数量是pri的两倍。
    relo, relocating_shards 迁移中的分片数量,正常情况为 0
    init, initializing_shards 初始化中的分片数量 正常情况为 0
    unassign, unassigned_shards 未分配的分片 正常情况为 0
    pending_tasks,准备中的任务,任务指迁移分片等 正常情况为 0
    max_task_wait_time,任务最长等待时间
    active_shards_percent,正常分片百分比 正常情况为 100%

    ES分片信息:

    curl -XGET -uelastic -p http://172.18.35.144:9200/_cat/shards/test*?v
    index:所有名称
    shard:分片数
    prirep:分片类型,p=pri=primary为主分片,r=rep=replicas为复制分片
    state:分片状态,STARTED为正常分片,INITIALIZING为异常分片
    docs:记录数
    store:存储大小
    ip:es节点ip
    node:es节点名称

     

    9: ETCD数据没有同步,

    二.处理思路

    1.备份正常节点的etcd数据和对应的数据目录

    2.停止异常数据etcd
    3.正常etcd节点,删除异常member
    4.清除member/ wal/目录下的数据
    5异常节点重新加入集群
    6.启动etcd服务就可以了

    etcdctl \ --cacert=/etc/kubernetes/cert/ca.pem \ --cert=/etc/kubernetes/cert/etcd.pem \ --key=/etc/kubernetes/cert/etcd-key.pem \ --endpoints=https://172.31.243.179:2379 \ member add k8s-03 https://172.31.243.178:2380

    10;  POD没起来,不健康查看

    11: 文件  text  逐行循环  把它取出来

    while read -r   line

    12:   POD挂载方式

    PV PVC  volume

    PVC  宿主机目录  configMap  emptyDir

    13: 控制器有几种

    Taint: 污点
    Toleration:  
    metadata:   相关属性定义
    master默认命名空间: default   kube-system
    kube-system: 网络组件  DNS组件  监控类组件
    命名空间: 结合kubernetes限额管理,可以限制CPU使用量  内存等
    POD之间通信,虚拟二层网络,如Flannel  vSwitch等,一个pod与主机上的pod容器直接通信
    Event:  事件记,node  event  和 POD event
    matchLabels:    匹配标签  AND下面
    matchExpressions:   匹配表达式
    imagePullPolicy:   IfNotPresent
    Headless Service: 只要在service中定义  clusterIP: none 就定义了一个Headless
    Docker Engine:   根据docker0网桥的IP地址段进行分配的   虚拟二层网络
    Pod控制器包括  RC  Job   DaemonSet  静态POD(kubelet)
    探针实现方式3种: ExecAction   TCPSocketAction   HTTPGetAction
    POD创建:  RC  Deployment(底层控制器RS)   DaemnonSet(监控)   Job ReplicaSet  StatefulSet 
    socat是一个网络工具,k8s使用它来进行pod的数据交互,出现这个问题直接安装socat即可
    调度策略: NodeSelector  NodeAffinity  PodAffinity  Pod驱逐,

    14:  污点可以任然调度的方法,去污点命令

    15: POD无法解释域名 无法解释DNS

  • 相关阅读:
    【JavaScript】JS引擎中执行上下文如何顺序执行代码
    透过生产车间看板洞悉生产制造企业的生产关键指标
    前端飞机大战小游戏
    一文3000字解析Pytest单元测试框架【保姆级教程】
    数据平台数据接入实践
    基于php湘西旅游网站管理系统获取(php毕业设计)
    国家知识产权专利申请的主要流程是什么?
    XuperChain共建守护者系列藏品震撼发行,最新合成玩法揭秘
    Nginx + keepalived 集群搭建
    泛微开发修炼之旅--37通过js实现监听下拉框,并触发后端接口,改变其他控件内容的实现方法与源码(含pc端和移动端实现)
  • 原文地址:https://blog.csdn.net/learnalwaystodie/article/details/127523538