KubeSphere是什么 KubeSphere是国内的青云开发的一款开源的,在 Kubernetes 之上构建的面向云原生应用的分布式操作系统。有非常完善的界面,对开发运维非常友好。……
前言 想对实验室的服务器搭建监控系统进行外部网页监控,目前比较主流的选择就是Prometheus + Grafana,先看最终效果: 服务器常规性能监控: GPU监控: D……
我搭建好的gitlab地址为https://gitlab.engine.wang,欢迎访问。可自行注册。 搭建gitlab服务器 Gitlab是一个类似于Githu……
为什么需要一个私有云盘? 公有云,诸如百度云盘等,不充会员的话速度感人,超级会员价格很贵,而且界面冗杂广告多。另外存储空间也比较有限,买空间非常不划算。 即使我目前……
回溯法可以解决各种排列组合问题,本质上就是遍历决策树。 宽度是问题的个数,高度是递归的深度 1 2 3 4 5 6 7 8 9 10 11 12 func backtrack(path, choiceList){ // 终止条件 if (terminal condition){ result = append(result, path) return } for _, choice := range choiceList {……
理论 一些概念 满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 完全二叉树 在完全二叉树中,除了最底层节点可……
翻转链表:寻找相同状态迭代与递归 有些指针变来变去的题目,特别绕,比如翻转链表。 LeetCode 206. 反转链表 ☆ 可以寻找相同的状态,解决这个状态下的问题,然后一个循环到最后。 相同状……
双指针 LeetCode 27. 移除元素 ☆ 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 1 2 3 4 5 6 7 8 9 10 func removeElement(nums []int, val int) int { left := 0 for _, num :=……
Ingress Service里现代架构还有很大差距,Ingress是在Service之上的概念,更接近实际的业务。 Service只能在四层TCP/IP协议栈转发,只有IP端……
Projected Volume Kubernetes中有一些特殊的Volume,其作用是为容器提供预先定义好的数据,就像被投射(Project)到容器中一样。这种Volume被称为Proj……
Kubernetes微服务:Service Service是集群内部的负载均衡机制, Pod处于一种动态稳定的过程中,但是客户端等需要稳定的后端服务。负载均衡机制在……
有状态集 前面提到了Deployment,但是Deployment有一个特点,就是它认为所有的Pod都相同,不存在顺序关系,无论在哪台宿主机运行,Deployme……
Kubernetes离线业务 Kubernetes有两类业务,一种是长时间运行的在线业务,比如Redis、MySQL、nginx;一种是短时间运行的离线业务,比如……
Deployment的引入 为什么需要Deployment Deployment可以管理在线业务,能够让应用永不宕机,是Kubernetes最实用最常用的一个对象。……
Pod简述 为什么需要Pod? 现实中经常会有多个进程密切协作才能完成任务的应用,而仅使用容器很难描述这种关系。 设想一种场景,一些容器因为联系非常紧密需要放在一起,……
云原生的历史 虚拟化技术 云计算的基础是虚拟化技术,一个重要的里程碑就是2001年VMWare的x86虚拟化计划,从而可以不购买物理设备来虚拟化一个机器。 接下来,亚……
准备硬件环境 k8s搭建的一些难点: 需要多台服务器,贵 搭建时需要科学上网 搭建比较复杂,学习起来也比较复杂 如果是学习阶段,也接触不到大型集群,可以在本地局域网进行搭……
前言 一般来说,除了一些企业高校等机构,国内绝大部分普通人没有ipv4的公网ip且极难申请到,毕竟用一个少一个,并且由于一些原因,国内ipv6也不太可能普及的起来……
Go web中最底层的库就是Go自带的http库,下面对这个库的源码进行解析,简单而言,http分为两个部分:Server与Client。 go http包的执行流程如下……
Docker的基石 容器本质上是一种沙盒技术,像一个集装箱,将应用装起来。 这样应用与应用不会互相干扰,装进集装箱的应用也可以非常方便的迁移,在不同的地方也能保持一……
为什么需要CDN 因为众所周知的原因,Github在国内访问时经常抽风,page抽风概率小一点但还是有概率访问不了或者很慢。于是我尝试给博客网站进行CDN加速。 内……
有并发的时候,需要锁来控制资源的访问规则。 MySQL的锁分为全局锁、表级锁和行锁。 全局锁 对整个数据库实例进行加锁,加完锁后数据库处于只读状态,一般用于全量备份的……
索引的概念与意义 索引是数据库中最重要的概念之一,它是一种特殊的查询表,可以被数据库搜索引擎用来加速数据的检索。索引能实现快速定位数据的一种存储结构,其设计思想是……
事务的概念与意义 一个行为可能涉及到多个操作,如果进行到中途系统忽然崩溃,那么可能会造成巨大的损失。 我们想要保证一系列的数据库操作,要么全部成功,要么全部失败。这……
日志的概念与意义 日志在各种软件都不可或缺,尤其是数据库应用,可以看作是飞机的黑匣子,记录着发生的一切。 其意义在于: 分析历史记录 定位问题 错误复盘 误操作,借助日志恢……
MySQL底层架构 MySQL包含一个Server层和一个存储逻辑层,大部分核心功能和内置函数、所有跨存储引擎的功能都在Server层实现。 存储引擎层负责数据存储……
服务器模型 C/S模型 即传统的Client/Server模型,客户端通过访问服务器来获取所需的资源。 串行效率非常低下,服务器需要同时保持多个客户端的监听和提供请求……
概述 数据链路层、网络层和传输层的协议都是在操作系统内核中完成的,实现网络的系统调用的api目前最主流的就是socket。 socket是应用层与TCP/IP协议之……
重温计算机网络协议栈 四层协议 TCP/IP协议是目前互联网的主流协议簇,早在计算机网络中我们就已经学习过大部分的内容,现在我们从协议的角度出发再次重温计算机网络的……
protobuf 是Protocol Buffers的简称,由Google开源,是一种轻便高效的结构化数据存储语言,定位是类似xml、json这样的数据描述语言。protobuf……