• 学习记录2022


    一、关于firewalld
    centos7默认的防火墙

    1. systemctl status firewalld.service
    2. firewall-cmd --get-default-zone # 查看默认区域

    查看防火墙规则
    firewall-cmd --list-all 
    查看防火墙是否放通某个端口
    firewall-cmd --query-port=8080/tcp

    开放端口或者服务
    firewall-cmd --permanent --zone=public --add-port=80/tcp 
    要想使配置的端口号生效,必须重新载入 firewall-cmd --reload

    端口转发  firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=134.175.167.56

    firewall-cmd --panic-on  # 拒绝所有流量,远程连接会立即断开,只有本地能登陆

    二、关于K8S原理

    3-17

    1、IAM权限策略 策略优先于权限

    2、练习批创文件,来自notepad++,通过for循环创建文件,删除采用

    ​      查看文件,使用xargs将输出转为输入,一组10个删除

    ​      同样使用for循环,定位所有文件,执行$i删除循环,done结束循环

    ​    使用find + exec rm -rf {} \;格式删除   在find语句中可以嵌套name 或者type等字段定位 

       仍然使用find 不过删除直接采用--delete的方式 速度更快 

    shell
    time 指令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等资讯


    rsync删除

    创建空文件夹,使用空文件夹方式进行覆盖 

    rsync -av /root/empty /home/allan/test/

    二、shell脚本的学习
    包含if语句的,if--elif--else  以及[]判断,|| 和 && 以及== -eq等

    3-18

    1、升级内核文章 注意先修改ELB的权重值为0,然后
    yum update kernel -y
    当前内核版本3.10.0-1160.53.1.el7.x86_64
    shutdown -r now
    2、切换Yum源 
    先将原有的yum源重命名 mv
    然后 wget 阿里的Centos7源 -O参数命名
    yum clean all 清除原来的缓存
    yum makecache 生成新的缓存

    3、fdisk 和 parted
    可以使用重定向文本输入的方式作为fdisk的输入
    mklabel gpt
    unit s
    makepart 100% test 2048
    p 查看
    q

    4、VPN和专线
    VPN 是ipsec VPN

    云专线,

    物理连接,虚拟网关,虚拟接口

    华为云侧自动下发路由 客户本地配置静态路由或者BGP路由 

    静态路由:ip route-static x.x.x.x 255.255.255.0 网关

    包含本地BGP AS号 
    以及对端华为云侧的网段 AS号
    对端网段peer以及加密方式simple/ciper 以及密码
    发布本地网络以及掩码 

    VPN 实际上还是走的公网  北京四到上海一VPC打通VPN后,互ping时延30ms
    华为云创建VPN网关,对端子网先随便写一个内网地址
    北京四等到创建好之后,出来本端子网,然后就可以作为上海一区域的远端子网
    等到上海一区域创建成功后,本端网关可以作为上海一的远端网关,点击修改 
    建立连接,不会主动去发起VPN,需要数据流触发,如互Ping 或者真实的数据流

    3-22
    一、服务器SSH加固
    1、更换sshd端口号,改掉默认的22端口
    二、开启防火墙加安全组规则 
    三、更换为秘钥登陆 
    控制台创建秘钥对 绑定给服务器
    更改sshd配置文件 密码认证改为no
    四、安全组规则 新加端口
    五、定义hosts.allow 以及hosts.allow文件
    hosts.allow文件 添加sshd:ALL

    二、分布式架构演进
    单体架构--应用和数据库服务器拆分--缓存/搜索的能力引入--数据库读写分离--数据库水平/垂直拆分--应用拆分--微服务化

    单体架构:应有和服务器整体化部署 所有业务都在一个应用里实现
    应用和数据库服务器拆分:横向扩展,将数据库服务单独部署
    缓存/搜索能力引入: 引入缓存降低对数据库的访问,比如将用户信息表存入缓存
    数据库读写分离:针对读写不一致的情况,进行读写分离重构,缓解数据库压力
    数据库水平拆分:将交易数据从一张表拆分为10张表,并让这些表在不同的数据库  使用分布式数据库中间件
    数据库垂直拆分:按照业务维度将原有数据库拆分成两个或多个,避免因为不同的业务相互影响
    应用拆分: 从逻辑上对应用进行拆分 比如金融业务 拆分成存储业务和理财应用,保险应用
    微服务化:拆分抽象独立服务独立部署 解耦应用和应用之间的绑定关系

    三、IOE
    IBM的小型机 Oracle数据库 EMC存储 
    IBM小型机性能强悍
    Oracle高级功能多 但是软件授权成本高
    EMC存储高端存储 单位存储成本高
    F5 硬件负载均衡软件

    禁用 ROOT
    用户名和密码尽量复杂
    修改 SSH 的默认 22 端口
    安装 DenyHosts 防暴力破解软件
    禁用密码登录,使用 RSA 公钥登录
    Redis:


    禁用公网 IP 监听,包括 0.0.0.0
    使用密码限制访问 Redis
    使用较低权限帐号运行 Redis

    3-25
    一、关于架构
    高可用,是指7*24提供服务,任何一台机器挂了或者磁盘坏了,服务不终止,文件不丢失;

    高可靠,是指正确的输入,得到正确的输出,读取a文件,不会得到b文件;

    高性能,是指吞吐量很牛逼,每秒响应几十万请求;

    可扩展,是指加机器,就能提升性能,就能存更多文件;

    3-28
    【1】openstack-nova-api.service nova-api是整个nova的入口,负责接受和响应终端用户有关虚拟机对云硬盘盘的请求。
    【2】openstack-nova-consoleauth.service 守护进程,由用户的console控制台代理提供授权tokens,两种模式nova-novncproxy和nova-xvpnvcproxy
    【3】openstack-nova-scheduler.service 负责调度虚拟机在哪个物理宿主机上部署,接受消息队列指令并执行。
    【4】openstack-nova-conductor.service nova-conductor模式,介于nova-computer和database之间,设计目的在于消除直接nova-computer直接访问云数据库。
    【5】openstack-novncproxy.service 守护进程,提供了VNC连接访问正在运行的实例的代表,基于novnc客户浏览器
    【6】openstack-nova-compute.service 两个职责,其一,是守护进程,负责基于各种虚拟化技术Hypervisior实现创建和终止虚拟机;其二,整合了计算资源CPU,存储,网络三类资源部署管理虚拟机,实现计算能力的交付。

    云单元架构
    1、自包含性  业务功能涉及的服务和数据是单元内自包含的,每个单元都具备完成业务所需的计算和存储能力
    2、松耦合性 单元之间只允许服务调用,不允许直接接访问数据库或其他存储,服务调用尽可能少
    3、故障独立性 一个单元的故障不会影响其他单元,故障影响不会跨单元扩散
    4、容灾性 单元之间相互备份,每个单元都保证在发生同城或者异地故障时候有可接管服务的单元

    两地三中心
    AZ1与AZ2可用区之间有负载均衡器
    RDS之间有主备同步
    数据之间有SDRS存储容灾服务 保证RPO为0

    地域1与地域2之间通过智能DNS
    云服务器备份---通过OBS跨region复制
    RDS也通过跨region复制

    region1和region2之间通过高速专线

    用户访问流量:通过智能DNS服务可查询到生产中心和容灾中心的公网IP,正常时用户流量100%引流至生产中心,灾难时期用户流量100%切换至容灾中心;

    Web/APP Server数据同步:web服务、应用服务服务器通过SDRS存储同步复制服务实现同步,RPO=0,RTO<15分钟。平时灾备中心计算资源不启动。

    数据库同步:云上使用RDS数据库服务,进行跨AZ主备部署,跨AZ间数据同步。

    容灾恢复切换:当生产中心发生故障时。RDS数据库自动切换至备库,应用层通过SDRS的一键容灾切换功能切换至容灾节点。并通过智能DNS服务将用户流量全部切换至容灾节点

    容灾演练:通过SDRS提供的容灾演练功能进行一键演练。

    3-29
    云防火墙    应避免将重要网络区域部署在边界处,重要网络区域与其他网络区域之间应采取可靠的技术隔离手段 
    SSL证书     应采用校验技术或密码技术保证数据完整性和保密性
    高防IP      应在关键网络节点处检测、防止或限制从外部发起的网络攻击行为
    Web应用防火墙  应具有提供访问控制、边界防护、入侵防范等安全机制
    堡垒机      应对用户进行身份鉴别、访问控制、运维审计
    主机加密    应满足数据完整性和数据保密性的要求
    主机安全    应能够检测到对重要节点进行入侵的行为,检测恶意代码感染及在虚拟机间蔓延的情况,并进行告警
    漏洞扫描    应能发现已知漏洞,并在经过充分测试评估后,及时修补漏洞
    数据库审计  应在网络边界、重要网络节点进行安全审计,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计
    综合日志审计 应对分散在各个设备上的审计数据进行收集汇总和集中分析,并保证审计记录的留存时间符合法律法规要求

    禁用IPV6 sysctl net.ipv6.conf.all.disable_ipv6=1
    sysctl -p 加载内核文件使之生效

    4-1
    1、一台服务器可以绑定两个EIP 可以设置路由策略 如访问某网段路由通过扩展网卡访问

    4-2
    1、两个端口对应两个web界面,相当于两个域名,分别接入WAF即可 80不带端口,8001带端口生成的CNAME一致

    4-6
    1、业务逻辑 客户端---Nginx(负载均衡)--API网关--注册/认证/前端/管理后端集群--配置中心集群---数据库集群/缓存集群/kafka/MongoDB集群
        管理后台包含搜索组件,微信支付,支付宝支付,链路分析,日志系统,监控告警,自动化组件,API接口测试
    2、EOM End of Marketing 停止产品销售生产
       EOS End of full support 停止产品支持服务
    3、使用备份软件实现本地数据备份至OBS桶 
       爱数 通过配置华为云OBS的endpoint,以及桶名,访问秘钥等信息将本地数据备份上云
    四、将域名迁移至华为云DNS进行解析 

    在华为云账号上创建公网域名,生成NS和SOA记录
    解析记录从原DNS服务商导入(包含A记录,CNAME记录),
    验证使用dig 域名 @权威DNS服务地址 
    修改原DNS服务商处的NS记录为华为云的NS,生效根据NS的TTL生存时间,最长为2天

    五、托管静态网站
    1、注册自定义域名www.example.com  准备index.html和error.html
    2、注册域名
    3、创建桶 属性公共读 标准存储
    4、上传index.html以及error.html至桶的根目录
    5、配置静态网站托管 托管index.html以及error.html文件至当前桶
    6、绑定自定义域名,可选CDN
    7、创建和配置域名托管 在公网DNS处加一条CNAME解析记录 指向example.obs.cn-north-1.myhuaweicloud.com(访问域名)
    8、验证www.example.com以及www.example.com/test

    6、Mysql配置远程登录 root用户
    授予grant所有库.表的权限 To 'root'@'%' 设置密码
    刷新权限 flush 
    注释my.cnf的配制文件里关于bind-address=127.0.0.0  取消仅本地登陆
    重启Mysql

    7、SQL SERVER备份 
    SSMS客户端具备备份全量的功能

    4-7
    1、docker存放在/var/lib/docker
    2、docker拉取指定版本的镜像加版本号 

    4-13
    正向代理:正向代理中的代理是代替客户端去访问服务器。如翻墙业务,就是通过代理节点去访问国外互联网
    反向代理:反向代理中的代理是代替服务器去应对客户端的访问。 它根据客户端的请求,从后端的服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端

    4-14
    在控制台检查云服务器安全组是否放通了登录端口 3389入方向

    检查云服务器防火墙配置是否正常  防火墙开启 要加3389 RDP协议的入站规则

    检查云服务器远程桌面连接设置  允许所有版本的windows远程该电脑

    检查云服务器是否开启Remote Desktop Services   RDP在services里处于开启状态

    检查云服务器远程桌面会话主机  会话主机在服务器管理器里安装

    注册表里的port number没有被修改

    SAP的全称为“Systems, Applications And Products In Data Processing” 即数据处理的系统、应用和产品。
      SAP企业资源规划(ERP)
      HANA(High-Performance Analytic Appliance)的含义为高性能分析设备,SAP HANA是一款支持企业预置型部署和云部署模式的内存计算平台,也可以说是一个软硬件结合体,它能够帮助企业加速业务流程,实现更智能的业务运营,并简化IT环境。
      
      4-15
      学习awk 和grep命令
      优化Centos7 设置yum仓库 设置NTP同步 系统调优(删除不需要用户)设置/etc目录下文件的缺省值 设置密码长度要求 设置可su为root的用户
      设置超时退出TMOUT=3600 设置history记录的时间,执行用户,保留数目开启防止IP欺骗 限制可以给at/cron的用户 
      设置motd issue警告 禁止root直连,增加可以允许的用户 修改sshd服务端口号
      
      4-24
      云服务器模拟RAID5
      列出所有的数据盘 fdisk -l | grep /dev/vd | grep -v vda
      安装mdadm工具 ---RAID管理工具
      mdadm -Cv /dev/md0 -a yes -n 4 -l 5 /dev/vdb /dev/vdc /dev/vdd /dev/vde  做成RAID阵列名称 /dev/md0
      -C 创建
      -v 详细过程
      -a yes 开启
      -n number 参与阵列的磁盘数 
      -l 阵列级别 --level 可以填0 1 5 6 10 
      做好阵列RAID5之后 
      做文件系统ext4 xfs
      创建空目录 挂载
      检查挂载关系 
      写入到/etc/fstab
      检查阵列 mdadm -D /dev/md0 -D --display
      
      扩大阵列  
      mdadm --grow --size max /dev/md0  --grow 扩大 --size max 将容量扩大到最大
      resize2fs -f /dev/md0  使扩容之生效 
      
      LVM
      安装lvm2
      fdisk -l | grep /dev/vd | grep -v vda
      创建PV(物理卷)
      创建VG(卷组)
      创建逻辑卷 lvcreate -L 15GB -n lvdata1 vgdata
      做文件系统 
      创建空文件夹 挂载
      写入/etc/fstab
      lvdisplay vgdisplay lvdisplay
      扩展 生效 
      lvextend -L +4GB /dev/vgdata/lvdata1 resize2fs /dev/vgdata/lvdata1 
      
      删除LVM 删除/etc/fstab里的配置 取消挂载 依次remove  lv vg pv 
      将磁盘恢复为云磁盘
      
      parted 做成GPT分区格式
      parted /dev/vdb
      p
      mklabel gpt
      unit s
      mkpart test(名字) 2048s 100%
      p
      q
      做文件系统 
      创建文件夹 挂载
      
      4-25
      
      运维规范
    ● 服务灾备:多机器、多机房;
    ● 数据灾备:多备份、异地备份;
    ● 网络灾备:多线路、多设备;

    原则
    a、自动切换 好于 手动切换;
    b、无状态 好于 有状态;
    c、热备 好于 冷备;
    d、多机房 好于 单机房。

    范围
    ● 基础监控:CPU、内存、网络、IO;
    ● 应用监控:进程、端口;
    ● 业务监控:日志、业务埋点;
    ● 依赖监控:数据库、依赖接口...

    原则
    a、核心监控收敛成告警,并对告警进行分级,备注告警影响;
    b、核心监控形成可排查问题的DashBoard;
    c、告警的价值在于实时发现故障。

    十、标准化规范
    范围
    ● 主机名标准化;
    ● 日志存储标准化;
    ● 日志格式标准化;
    ● 域名使用标准化;
    ● 软件安装目录结构标准化;
    ● 服务及相关的组件使用命令标注化;

    原则
    a、主机名尽量能看出更多信息,比如服务、模块、机房等;
    b、日志是排查问题的重要信息,一定要标准化,方便手工排查,更是为了以后用工具处理打下基础。

    4-26
    Mysql的层级架构
    连接层 数据库的连接,验证
    SQL层 解析查询,优化查询,执行查询
    存储层 磁盘(InnoDB,MyISAM),内存memory,网络ndb

    主从复制
    master将改变记录到二进制日志(binary log)。
    slave开启一个 I/O 线程,连接master,进行binlog dump process,从master的二进制日志中读取事件,然后写入本地的中继日志(relay log)内。如果已经同步好master的binlog事件,它将会睡眠并等待master产生新的事件。
    slave开启一个 SQL 线程,SQL线程从中继日志读取事件,并重放其中的事件而更新slave的数据,使其与master中的数据一致。假设该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。
      
    Nginx
    工作模式
    Nginx 采用的是多进程(单线程) & 多路IO复用模型。
    多进程的工作模式
    Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程。
    接收来自外界的信号,向各worker进程发送信号,每个进程都有可能来处理这个连接。
    master 进程能监控 worker 进程的运行状态,当 worker 进程退出后(异常情况下),会自动启动新的 worker 进程。

    4-27
    1、nc工具 安装netcat
    nc -v -z ip port 
    nc -v -z 127.0.0.1 22   -v显示详情 -z仅显示连接状态 
     nc -v -z 127.0.0.1 80
    Ncat: Version 7.70 ( https://nmap.org/ncat )
    Ncat: Connected to 127.0.0.1:80.
    Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.

    2、nmap工具 安装
    nmap -sS -p 1-10000 127.0.0.1 # -sS 使用SYN连接,快速扫描 快速扫描1-10000端口 哪些端口开放 并显示协议
    Starting Nmap 7.70 ( https://nmap.org ) at 2022-04-27 15:54 CST
    Nmap scan report for VM-0-4-centos (127.0.0.1)
    Host is up (0.0000060s latency).
    Not shown: 9996 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    80/tcp   open  http
    3306/tcp open  mysql
    5355/tcp open  llmnr

    Nmap done: 1 IP address (1 host up) scanned in 2.47 seconds

     dig
     
    dig +short huaxiacloud.com
    dig @114.114.114.114 huaxiacloud.com 指定权威的DNS服务器去解析huaxiacloud.com域名

    tcpdump -n -i eth0 'port 80' -s0 -w result.pcap
    tcpdump -i eth1 udp # 协议过滤  
    tcpdump -i eth0 dst ${HOST} and port ${PORT} # 抓取特定目标ip和端口的包

    4-28
    1、跟login有关的
    /etc/sudoers 普通用户赋权
    /etc/shadow gary:$1$2Uu6yiEE$m4Pj3bKxVd9oLA74jj4F0/:18364:0:99999:7::: 第二列为*或者为!!无法进行登录操作
    /etc/ssh/sshd_config 默认是开启状态“UsePAM yes” 

    4-29
    windows系统10个命令
    ping 
    ipconfig ipconfig /all ipconfig /flushdns  ipconfig /release 
    arp -a
    traceroute 追踪路径
    route print 打印路由
    nslookup 解析IP地址和域名
    netstat 

    5-5
    ###########################
    minikube命令学习
    minikube start 启动minikube集群
    kubectl get svc 获取集群svc信息
    kubectl get node 获取node信息
    kubectl cluster-info 获取集群版本信息,IP信息
    kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 创建一个deploy(应用),默认单副本
    kubectl get pods 获取pod信息
    kubectl proxy 创建一个代理,它将通信转发到集群范围内的私有网络中
    curl http://localhost:8001/version 现在打开一个新终端,您应该可以访问应用程序端点
    kubectl scale deployment/kubernetes-bootcamp --replicas=3 伸缩应用副本到3个
    kubectl get pods
    kubectl scale deployments/kubernetes-bootcamp --replicas=2 缩减副本到2个
    kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2 滚动更新,将应用版本滚动更新至V2
    kubectl rollout undo deployments/kubernetes-bootcamp 回退应用版本到V1

    k8s使用流程 
    1、创建应用的yaml模板,--dry-run 设定镜像nginx  生成yaml文件 web.yaml
    2、编辑yaml文件,设计标签,以及标签选择器
    3、创建项目deploy,查看日志 logs
    4、创建service,expose,服务名,负载名称,pod内端口,target-port 以及映射端口类型noePort
    5、get 一下service 检查服务状态  提供了访问方式,域名:nodeport即可以访问,或者nodeportIp:port可以访问
    6、升级服务 其实就是set image一个新的镜像
    7、回滚版本,回滚到上一个版本(滚动更新策略 roll-update),也可以指定回滚的版本号
    8、指定伸缩副本数字,可以伸缩扩大,也可以减少
    9、删除svc,以及负载


    mysql优化 
    表设计不合理---1、不符合三大范式要求 2、存在大表join查询
    分表---1、竖直切割 2、水平切割
    配置优化---1、/etc/my.cnf配置 最大连接数 开启查询缓存 
    偶发性访问高峰---1、缓存失效 2、业务活动
    sql分析--1、慢查询慢语句 2、语句优化(索引,减少模糊查询,减少全表扫描)
    存储过程---1、减少网络IO
    读写分离--1、select和insert update delete分离
    升级配置


    docker 
    docker run -d --name mysql8 -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql 创建mysql8容器
    docker exec -it $(docker ps -a -q | head -n 1) /bin/bash
    docker ps | awk 'NR==3{print $1}'

    免交互设置密码  echo "Cgsl@12345" | passwd --stdin allan

    创建redis容器
    docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf  -v /data/redis/data:/data -d redis  --appendonly yes
    redis-cli -h 127.0.0.1 -p 6379 # redis连接命令

    5-6
    redis
    String(字符串)
    Hash(哈希)HMSET runoob field1 "Hello" field2 "World" HGET runoob field1
    List(列表)lpush runoob redis
    Set(集合)
    zset(sorted set:有序集合)

    5-7
    随机生成密码 
    命令 openssl rand -base64 15  
         mkpasswd -l 12  -C 2 -c 4 -d 4 -s 2  #随机生成密码   -l位数 -C大小 -c小写 -d数字 -s特殊字符


    5-10
    df -h | awk '$6~/\/$/ {print $NF, $(NF-1)}'   #打印根分区使用率 
    free -m | awk '$1 ~/Mem:/{print $NF}'         #打印可用内存
    free -m | awk 'NR==2{printf "%.2f%%\t\t", $3*100/$2 }' #打印可用内存情况
    ip addr | grep inet | grep -v "inet6" | grep -v "127.0.0.1" | grep -v "172.17.0.1" | awk '{ print $2; }' | tr '\n' '\t' | awk -F "[/]"  '{print $1}' #打印IP地址

    ifconfig eth0 | sed -n '2p' | awk '{print $2}'
    ifconfig eth0 | awk 'NR==2{print $2}'  打印eth0的IP
    cat /proc/cpuinfo | grep name  | cut -d: -f2 | uniq    #查看CPU name
    hostname 或者 uname -n #查看主机名
    cat /proc/cpuinfo | grep 'processor' | sort | uniq | wc -l  #查看有几颗CPU

    cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}  #查看所有用户的定时任务

     cat /proc/net/dev | grep en

    nohup sar -u -o test 30 & #间隔30s采集cpu指标
    使用bg 查看后台在运行的任务
    使用jobs -l 查看任务详情 
    使用ps -ef | grep sar 查询任务详情
    杀死进程 ps -ef | grep sar | grep -v grep | awk '{print $2}' | xargs kill -9
     sar -u -o test 30 10     #间隔30s采集cpu指标 总共采集10次 

    5-11
    RDS只读实例也有IP
    RDS主备实例在对应VPC里自动有浮动IP以及占用的私网IP

    5-12
    SWR服务 
    界面生成临时登录指令 docker login -u cn-north-1@4VI815F7PKFGQYP6PDLK -p 82454d04b5c439f4545dc0106ace545e86115d3e3233daa6c1053041fbbad7db swr.cn-north-1.myhuaweicloud.com
    镜像打tag  镜像名称:v1(版本)  
    然后push 到华为云仓库  镜像仓库地址/{组织}/{镜像名称}:{镜像版本}

    组织 有授权的IAM账号 以及管理的镜像,镜像是支持多版本的

    Harbor是VMware公司开源的企业级Docker Registry管理项目 
    Harbor提供与目标仓库同步的配制 

    CCE服务
    1、secret 键值对 存放敏感信息 使用base64加密
    创建secret后 在volume pod等资源中引用secret

    2、configmap 键值对 可以引入一些配置文件 如redis_config  bind_ip 127.0.0.1
    创建configmap后,在volume pod等资源中引用

    3、权限 可以选择集群(必选)--命名空间(可以指定单个命名空间或者全部)--用户组(IAM用户组)---权限(集群角色)

    4、负载HPA策略--metrics-server(必须安装此插件)--可以基于CPU/内存使用率进行伸缩
       策略名称--集群--命名空间--负载--实例范围(数量)--冷却时间--策略规则(如CPU大于90%)
       
       节点伸缩依赖于autoscaler插件,只能伸缩DefalutPool池以外的节点池(需要新建节点池)
       
    5、 守护进程集合 DaemonSet需要安装everest-csi-driver(对接存储) 以及icagent(对接监控以及AOM)

    6、节点管理--节点名称--调度状态--所属节点池--规格--可分配资源(总CPU-已分配的CPU-系统预留的CPU)--IP地址(私网和公网)--节点来源(创建or 纳管)
     单容器默认可用数据空间为10G 系统盘默认40G 数据盘默认100G
    7、


    5-17
    1、mysql
    create user 'allan'@'%' identified with mysql_native_password by 'Cgsl@456';   #创建一个远程登录的账户 'allan'@'%'
    grant all privileges on *.* to 'allan'@'%' with grant option;                  #授予权限 所有库所有表的权限
    ALTER user 'root'@'%' IDENTIFIED BY 'Cgsl@428';                                #修改已有账户的登陆密码 
    FLUSH PRIVILEGES;                                                              #刷新下权限
    select user from  mysql.user;                                                  #列出所有账户
     show grants for 'allan'@'%';                                                  #查看单个账户的权限
     
    select user,host,password_last_changed from user \G;                           #查看账户的Host,use,以及上次修改密码时间

    5-18
    查看磁盘IO性能
    iostat -d -x -k 1 10
    1 10表示,数据显示每隔1秒刷新一次,共显示10次
        -c      只显示CPU行
        -d      显示设备(磁盘)使用状态
        -k      以千字节为单位显示磁盘输出
        -t       在输出中包括时间戳
        -x      在输出中包括扩展的磁盘指标
    r/s: 每秒完成的读 I/O 设备次数。
    w/s: 每秒完成的写 I/O 设备次数。

    sar -n DEV 1 5
    使用-n选项可以对网络使用情况进行显示,-n后接关键词”DEV”可显示eth0、eth1等网卡的信息: 
    1 10 间隔1s 打印10次


    5-19

    6-2
    1、K8S探针
    三种探针: http-get tcp-socket exec
    http-get 根据http返回码 2XX 3XX则容器是健康的
    tcp-socket: 探测端口建立tcp socket连接
    exec:   检查命令执行的返回值,如果正常返回 则容器是健康的


    6-13
    1、service
    Kubernetes中的Service对象就是用来解决上述Pod访问问题的。Service有一个固定IP地址(在创建CCE集群时有一个服务网段的设置,这个网段专门用于给Service分配IP地址),Service将访问它的流量转发给Pod,具体转发给哪些Pod通过Label来选择,而且Service可以给这些Pod做负载均衡。

    创建pod(pod内打标签)
    创建service (标签选择器和pod关联)
    这样创建好的service和pod就关联起来了


    另外集群的时候,会默认要求安装CoreDNS插件,在kube-system命名空间下可以查看到CoreDNS的Pod。
     kubectl get pod -n kube-system
    NAME                                 READY   STATUS    RESTARTS   AGE
    coredns-5c98db65d4-h6ls6             1/1     Running   0          11d
    coredns-5c98db65d4-nt9kh             1/1     Running   0          11d

    CoreDNS安装成功后会成为DNS服务器,当创建Service后,CoreDNS会将Service的名称与IP记录起来,这样Pod就可以通过向CoreDNS查询Service的名称获得Service的IP地址。

    nginx..svc.cluster.local访问,其中nginx为Service的名称,为命名空间名称,svc.cluster.local为域名后缀,在实际使用中,在同一个命名空间下可以省略.svc.cluster.local,直接使用ServiceName即可。

    前面说到有了Service后,无论Pod如何变化,Service都能够发现到Pod。
     kubectl describe svc nginx
    Name:              nginx
    Namespace:         default
    Labels:            
    Annotations:      
    Selector:          app=nginx
    Type:              ClusterIP
    IP:                10.98.190.85
    Port:              service0  8080/TCP
    TargetPort:        80/TCP
    Endpoints:         10.244.1.22:80,10.244.1.23:80,10.244.2.22:80
    Session Affinity:  None
    Events:            


    kubectl get endpoints
    NAME         ENDPOINTS                                      AGE
    kubernetes   192.168.1.61:6443                              11d
    nginx        10.244.1.22:80,10.244.1.23:80,10.244.2.22:80   65m

    列出的endpoints就是pod的IP
    删除一个Pod 新建一个pod 这些信息会被service更新到endpoints里

    除了记录Service和IP/端口对的关系,kube-proxy还会监控Service和Endpoint的变化,从而保证Pod重建后仍然能通过Service访问到Pod。

    6-16
    1、删除不必要的用户,以及用户组(games,halt)(lp adm)
    2、关闭不需要启动的系统服务 如 auditd sendmail
    3、采用秘钥登陆,或者设置强密码策略,以及密码有效期限制
    4、合理使用su和sudo命令 限制超级管理员的密码知晓范围 使用sudo执行一些系统重启,服务重启命令
    5、删除系统欢迎语信息 /etc/issue
    6、合理使用shell历史命令记录功能
    7、对重要文件加锁 如a i 只可追加 不可编辑


    处理攻击的思路
    1、查找攻击源,通过top netstat ps等命令 查看有无异常进程 
    2、分析可能引起入侵的途径以及原因 如系统漏洞 软件漏洞等
    3、备份用户数据
    4、重装系统


    6-17
    安装ansible
    yum install epel-release -y #安装epel源
    yum install ansible # 安装ansible
    vim /etc/ansible/hosts #建立主机组
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.62 #复制公钥到被管理主机
    ansible k8s -m ping #了解模块 ping模块 
    ansible k8s -m shell -a 'ls -l /newfile' #shell模块
    ansible k8s -m command -a "ss -nltp" #command模块 
    ansible k8s -m shell -a 'cat /etc/passwd |grep "^root"'
    ansible k8s -m copy -a 'src=/root/nginx-deployment.yaml dest=/newfile/'  #copy模块
    ansible k8s -m copy -a 'content="I am yake\n" dest=/newfile/name1 mode=666'

    ansible k8s -m file -a 'path=/newfile/nginx-deployment.yaml state=absent' # file模块 删除文件
    ansible k8s -m copy -a 'content="I am allan\n" backup=yes dest=/newfile/name1 mode=666' #覆盖并且对源文件进行备份

    7、 ansible k8s -m cron -a 'name="df everyday" hour=10 job="df -lh >> /tmp/disk_total &> /dev/null" state=present'
        #cron模块  --定时任务
    8、ansible k8s -m yum -a 'name=htop state=present'
    #yum模块   --安装软件
    9、ansible k8s -m service -a 'name=crond state=restarted enabled=true'
    #service模块 --服务管理
    10、
    user模块 --管理用户
    11、group模块 --管理组
    12、script模块 --被管理机上存放脚本 在管理上开始下发指令执行

    7-4

  • 相关阅读:
    JavaSE之包装类
    DeFi的历程与未来:探寻去中心化金融的前行路
    使用 sklearn 进行数学建模的通用模板
    [附源码]计算机毕业设计社区住户信息管理系统Springboot程序
    深入探讨面向对象多态
    百度飞浆ResNet50大模型微调实现十二种猫图像分类
    Apache Airflow (二) : Airflow单机搭建
    C#非托管泄漏中HEAP_ENTRY的Size对不上是怎么回事?
    何为整型提升(实例)
    基于html的美食网站 奶茶网页设计与实现(HTML+CSS+JavaScript)
  • 原文地址:https://blog.csdn.net/weixin_39627083/article/details/126221470