当前位置: 首页 > article >正文

985研一学习日记 - 2024.11.14

一个人内耗,说明他活在过去;一个人焦虑,说明他活在未来。只有当一个人平静时,他才活在现在。

日常

1、起床6:00

2、健身2h

3、LeetCode刷了题

  1. 动态规划概念
    1. 如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的这一点就区分于贪心贪心没有状态推导,而是从局部直接选最优的,有重叠子问题时使用动态规划DP,不可以用贪心,贪心是局部最优
    2. 有很多重叠子问题时,用动态规划最有效,从上一个状态推出当前状态,而贪心是局部最优解,无法解决动态规划问题
    3. 动规是由前一个状态推导出来的,而贪心是局部直接选最优
    4. 对于动态规划问题,我将拆解为如下五步曲,这五步都搞清楚了,才能说把动态规划真的掌握了!
      1. 确定dp数组以及下标的含义:一定要牢记dp数组下标的含义
      2. 确定递推公式
      3. dp数组如何初始化一些情况是递推公式决定了dp数组要如何初始化!
      4. 确定遍历顺序从递推公式确认遍历顺序
      5. 举例推导dp数组
    5. 找问题的最好方式就是把dp数组打印出来,看看究竟是不是按照自己思路推导的!
    6. 动态规划对于重叠子问题非常有效,根据之前的状态来推导当前的状态,贪心是局部最优解,不适用于动态规划;动态规划先定义dp数组,并确定每个下标的含义,然后确认递推公式,再初始化dp数组,确认遍历顺序,最后举例验证;如果出现错误则打印dp数组看是否符合预期
  2. 斐波那契数列
  3. 爬楼梯
    1. dp0应该 == 0,不应该定义为1,因为n为正整数,故n不可能为0
    2. 加大难度,最多可以m个阶梯到达
  4. 使用最小花费爬楼梯
    1. 此时从0和1开始,刚开始的花费是0的,每次根据前面的花费+对应向上走的花费来更新dp数组

4、复盘22:00

不复盘等于白学!!!


学习和感想

1. Kubernetes

1. 是什么:分布式系统管理框架

  1. 当容器太多时,急需一个大规模容器编排系统对所有的容器进行管理,K8s就是对一整个分布式系统的所有容器进行管理,对整个分布式系统的所有容器进行管理
  2. 服务发现和负载均衡:对所有的容器进行统一编排和处理,Kubernetes可以对所有的容器服务进行注册发现,其会对某个服务的请求进行负载均衡
  3. 存储编排:对所有的容器服务的存储进行统一管理
  4. 自动部署和回滚:将部分的容器服务直接回滚到之前的版本
  5. 自动完成装箱计算:Kubernetes允许指定每个容器所需的CPU和内存
  6. 自我修复:Kubernetes会对重启失败、停止允许的容器进行自我修复,自动恢复到结束之前的配置
  7. Kubernetes的特性![[attachments/Pasted image 20241114133256.png]]![[attachments/Pasted image 20241114133728.png]]

2. 架构

  1. Kubernetes一般都是集群模式,多个master节点和多个WorkNode节点

  2. Kubernetes Cluster = Nmaster + Nworknode,即N个master结点N个工作节点

  3. ![[attachments/Pasted image 20241114135237.png]]

  4. 集群中每个组件都是通过 api-server 进行通信每个结点都必须有一个 kubelet 进行结点的控制,每个结点通过 kube-proxy 进行通信,由kubelet对该节点进行配置,由kubeadm在主节点中对主节点进行配置,kubectl是命令行工具,对服务器中的kubenetes进行配置

3. Kubernetes创建集群

  1. 为每台机器安装Docker
  2. 为每个机器安装 Kubelet、Kubectl(K8S的命令行)、Kubeadm(快速搭建K8S集群),三大件不需要Docker,其他组件均需要Docker
  3. 选择一台机器在Kubadm中输入 kubadm init 来初始化为master节点
  4. 由master节点的kubelet自动去下载安装master核心组件 scheduler、kube-proxy、etcd、api-server、controller-manager
  5. 对于非master节点通过在kubadm中输入 kubadm join 来加入master节点,此时就变为WorkNode,然后由该节点的kubelet去安装kube-proxy

4. 创建三台云服务器

  1. 创建三台云服务器实例
  2. 为每个服务器配置公网IP,且设置一个VPC私有网络使得所有的服务器都放到一个VPC下,此时可以通过私网IP进行访问,速度快且不收费,只有同一个VPC私有网络下的服务器才可以通过私网IP进行互相访问,此时很快且不收费
  3. 只有同一个VPC下的机器才可以通过私网IP进行访问
  4. 要在创建服务器时指定VPC
  5. 为每个服务器中都安装Docker环境,且要安装与K8s的环境相匹配的版本
  6. 使用 systemctl enable docker --now 来启动Docker,此时enable是指开机启动–now指当前启动

5. Kubernetes创建集群

  1. 准备预备环境,更改配置

    1. ![[attachments/Pasted image 20241114220251.png]]![[attachments/Pasted image 20241114220534.png]]
      在这里插入图片描述
  2. 安装集群三大件:kubelet、kubeadm、kubectl

    1. kubelet、、kubeadm、kubectl![[attachments/Pasted image 20241114220720.png]]
  3. 使用kubeadm引导安装master节点

    1. 除了Kubenetes三大件,其余的组件都以容器的形式进行运行,要下载镜像然后运行![[attachments/Pasted image 20241114220910.png]]

    2. 下载好组件的镜像后要先初始化主节点master使用kubeadm init来初始化只在主节点中进行初始化,但要先在所有节点中指出当前的主节点,然后只在主节点中初始化,此时kubeadm会自动对master节点进行配置 ![[attachments/Pasted image 20241114221803.png]]

    3. 根据master节点的提示继续后面的操作,进行配置后,然后加入新的master节点,加入新的WorkNode节点(24小时内有效,超时可以申请令牌) ![[attachments/Pasted image 20241114221944.png]]![[attachments/Pasted image 20241114222102.png]]

    4. 使用kubectl get pods -A 查看部署的所有pos时出现了核心组件,则说明主master节点安装完成 ![[attachments/Pasted image 20241114223153.png]]

  4. 向集群中加入WorkNode

    1. 根据创建master节点完成后返回的操作提示来join工作节点WorkNode该提示中的命令是24小时之内有效的,如果超过24小时就不可以使用该命令加入新的节点了![[attachments/Pasted image 20241114223331.png]]

    2. 通过在master节点中 kubeadm token create --print-join-command 来获取新的加入WorkNode节点的令牌![[attachments/Pasted image 20241114224348.png]]

    3. 然后在master节点中使用kubectl get nodes来查看集群中的所有节点必须在master节点才可以查看

    4. 必须等所有pod都安装成功并Running后才可以看到nodes,可以使用 watch -n 1 kubectl get pod -A:来每s监控一次是否部署成功

  5. Kubenetes集群自我修复能力测试

    1. 集群宕机后重启,会自动恢复之前的配置
  6. Kubenetes命令

    1. kubectl get nodes:查看集群所有节点
    2. kubectl apply -f xxx.yaml根据配置文件,给集群创建资源
    3. kubectl get pods -A:查看集群部署了哪些应用(在Docker里面通过docker ps 查看所有正在运行的容器,在Kubunetes中叫 pod

http://www.kler.cn/a/394036.html

相关文章:

  • docker:docker: Get https://registry-1.docker.io/v2/: net/http: request canceled
  • DevOps工程技术价值流:加速业务价值流的落地实践与深度赋能
  • vue2+ element ui 集成pdfjs-dist
  • 前端-同源与跨域
  • MySQL技巧之跨服务器数据查询:进阶篇-从A数据库复制到B数据库的表中
  • ima.copilot-腾讯智能工作台
  • windows和linux行尾序列CRLF和LF切换问题
  • k8s服务内容滚动升级以及常用命令介绍
  • 【K8S系列】如何监控集群CPU使用率并设置告警的分析与详细解决方案
  • 云服务器安装mysql8.0(阿里云或者腾讯云都可以)
  • 【论文复现】基于标签相关性的多标签学习
  • Make Selinux Enforce Again
  • 大语言模型理论基础
  • 禁止 Kindeditor富文本粘贴图片和html格式
  • 基于海思soc的智能产品开发(两个图像处理来源)
  • 前端:块级元素和行内元素
  • ESLint 使用教程(四):ESLint 有哪些执行时机?
  • 在卷积神经网络中真正占用内存的是什么
  • Oracle ADB 导入 BANK_GRAPH 的学习数据
  • Spring Boot编程训练系统:设计与实现要点
  • 使用python-Spark使用的场景案例具体代码分析
  • TR3:Pytorch复现Transformer
  • 12306中如何知道用户使用的哪种登录方式?(用户名、邮箱、手机号)
  • 力扣-Mysql-3328-查找每个州的城市 II(中等)
  • 【Android】View—基础知识,滑动,弹性滑动
  • 从前端react动画引发到计算机底层的思考