/images/avatar.jpg

Kiosk Studio (2022)

算法 - (二叉树)

二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。以下会以几道 LeetCode 巩固自己的基础

算法 - (数组、链表)

数组、链表是编程语言中最常见的数据结构,也是最基础的数据结构。以下会以几道 LeetCode 巩固自己的基础 结构对比 数组和链表各有各的优势,比如数组的随机插入和删除都是O(n)的,可谓是很低效了。但是数组的查找是是O(1),直接指定下标即可找到对应的元素。而链表必须遍历,也就是想要查找你一个元素的时间复杂度是 O(n)。所以数组和链表各有各的优势,互相补充。 数据结构 操作   时间复杂度 数组  prepend  O(1)   append   O(1)    lookup  O(1)   insert  O(n)   delete  O(n)   –  – 链表  prepend  O(1)    append   O(1)    lookup  O(n)   insert  O(1)   delete  O(1) 实现 数组 1 2 3 4 5 6 7 8 9 10 11 12 a := []int{1, 1, 2, 2, 2, 3, 4, 5, 5, 5, 6} var b []int b = append(c, 11) b = append(b, a.

minikube 实践

最近又在折腾 k8s 了,minikube 无疑是单机环境下最好用的 k8s 解决方案了。网上的资源太老旧了,让安装的版本是 1.2.0 - 1.13.0 之间,而且给提供的 minikube 可执行文件在 aliyun 的 oss 上还没有其他的版本,所以决定自己手动安装并且记录一下。 Minikube可以实现一种轻量级的Kubernetes集群,通过在本地计算机上创建虚拟机并部署只包含单个节点的简单集群 本文于 24.6 月重新更新过,最新的 minikube 版本是 1.32.0 , kubernetes 最新版本 1.33.0 如果需要更新 minikube ,需要更新 minikube 安装包 如需更新minikube,需要更新 minikube 安装包 minikube delete 删除现有虚机,删除 ~/.minikube 目录缓存的文件 重新创建 minikube 环境 配置 先决条件 Minikube在不同操作系统上支持不同的驱动 macOS Docker 缺省驱动 xhyve driver , VirtualBox 或 VMware Fusion Linux VirtualBox 或 KVM2 Docker 缺省驱动 Windows VirtualBox 或 Hyper-V 注:

systemd 基本概念

systemd 是 PID 为1的一个程序,负责初始化系统。所有的程序不是systemd直接启动就是由systemd的子系统启动。systemd是内核直接启动,所以信号9(KILL)对systemd也无效。

systemd 使用Linux控制组跟踪进程,维护安装和自动挂载点,并实现基于事务性依赖关系的详尽服务控制逻辑。其他部分包括日志记录守护程序,用于控制基本系统配置的实用程序,例如主机名,日期,区域设置,维护已登录用户和正在运行的容器和虚拟机的列表,系统帐户,运行时目录和设置,以及用于管理简单网络的守护程序配置,网络时间同步,日志转发和名称解析。

Kubernetes 调度对象

在容器的世界中,Namespace 做隔离,Cgroups 做限制,rootfs 做文件系统,而如果仅仅是这样的化,容器是没有价值的,因为这样很难实现线上生产环境迁移到容器集群中,线上环境复杂多变,多个服务需要通过本地socket通信或者通过文件交互内容,所以在 k8s 中,pod才是最小的调度单元。

ubuntu20.04 部署 Kubernetes (k8s)

Kubernetes(k8s)是一个免费的开源容器编排工具。它用于部署,扩展和管理基于容器的应用程序。在这篇文章中,这里将演示如何安装Kubernetes集群的Ubuntu 20.04 LTS服务器使用(Focal Fossa)kubeadm。在实验室设置中,我使用了三台Ubuntu 20.04 LTS服务器。