Kubernetes

Kubernetes 基本概念 1.Kubernetes 它是一个为 容器化 应用提供集群部署和管理的开源工具,由 Google 开发。 Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目 K3S? k3s为轻量级Kubernetes,K3S是经CNCF一致性认证的Kubernetes发行版,专为物联网及边缘计算设计。 本文基于K3S进行编写 Kubernetes架构图解 2.名词解释 master 主节点,控制平台,不需要很高性能,不跑任务,通常一个就行了,也可以开多个主节点来提高集群可用度。 worker 工作节点,可以是虚拟机或物理计算机,任务都在这里跑,机器性能需要好点;通常都有很多个,可以不断加机器扩大集群;每个工作节点由主节点管理 Pod 豆荚,K8S 调度、管理的最小单位,一个 Pod 可以包含一个或多个容器,每个 Pod 有自己的虚拟IP。一个工作节点可以有多个 pod,主节点会考量负载自动调度 pod 到哪个节点运行。 3.Kubernetes组件 kube-apiserverAPI 服务器,公开了 Kubernetes API etcd 键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库 kube-scheduler 调度 Pod 到哪个节点运行 kube-controller 集群控制器 cloud-controller 与云服务商交互 主要特性 高可用,不宕机,自动灾难恢复 灰度更新,不影响业务正常运转 一键回滚到历史版本 方便的伸缩扩展(应用伸缩,机器加减)、提供负载均衡 有一个完善的生态 环境搭建 K3S安装脚本 1 2 3 4 curl -sfL https://get....

January 13, 2022 · 1 min · 97 words · ecturing

Visual Studio Code C/C++

Visual Studio Code C/CPP配置指南 一.准备工作 通用 打开Visual Studio Code插件市场,搜索C/C++ Extension Pack,进行安装。 可选工作 敬告:在VSCode中启用Clangd必须强制关闭C/C++ 的智能感知,同时C/C++ 文件右上角将不会有一键生成配置文件的齿轮按钮,在启用clangd之前请先使用C/C++插件的智能感知生成配置文件,随后禁用C/C++智能感知,记住基础快捷键Ctrl+F5直接生成,F5启用调试用于日常运行。若涉及多文件编译需要可启用Cmake,可与Clangd配合使用,需要自行配置。 Visual Studio Code 的C/C++ 扩展已经为Visual Studio Code 提供了完整一套工具库,但是C/C++ 扩展占用内存大,静态检查有可见延时等缺点。可引入clangd增强VSCode的静态检查和补全体验。 Clangd官网介绍: 即clangd是由llvm团队开发的一个针对C/C++的LSP服务(Language Server Protocol,语言服务器协议),相当于以独立进程为类似VSCode,Sublime Text,Vim等编辑器提供静态语法分析,错误诊断,转定义引用等功能。 在VSCode中搜索Clangd插件,Windows端点击安装clangd插件后会自动检查Clangd环境变量,若未安装,可点击Clangd插件的弹窗Install进行安装。 Linux端 若提示未安装,则输入以下命令。 1 sudo pacman -Sy clang 同时点击Clangd插件弹窗的禁用C/C++ Intelli Sence Engine,这时Clangd会接管C/C++自带的LSP服务,对代码进行分析补全,此时可以获取到更好的体验。 Windows端 请先配置好MinGW编译链,然后于LLVM官网下载最新版LLVM工具,并勾选安装时添加到环境变量,在windows控制台输入命令检查是否安装成功 1 clang -v 安装成功后,点击VSCode的clangd插件,点击插件设置,在clangd fallback flags中添加下列语句 1 --target=x86_64-pc-mingw64 意义为指定生成目标为mingw64类型,clangd会自动检测环境变量中的MinGW安装目录。 Windows 安装MinGW编译器 在官网上下载MinGW编译器,并进行环境变量的配置。 win键+s 搜索环境变量,点击系统变量,PATH,编辑,点击新建,然后点击浏览选择MinGW安装路径(选择到bin目录处) 打开终端输入 1 gcc -v 如果返回版本信息,则安装成功,若未显示,检查安装步骤是否有误 Linux(以Manjaro Linux为例子) ​ 在绝大多数Linux发行版中默认携带了gcc,在终端驶入以下命令验证是否拥有gcc 1 gcc -v 若有返回版本信息,则说明已经安装,若未显示,则进行安装...

December 3, 2021 · 1 min · 88 words · ecturing

Java多线程

Java 多线程 一.线程实现 线程的三种实现 继承Thread类 不推荐使用继承Thread类,应为java只能单继承,如果要继承其他类则无法实现 1 2 3 4 5 6 7 8 9 public class ThreadTest extends Thread{ public static void main(String[] args) { new ThreadTest().start(); } @Override public void run() { System.out.println("fuck you"); } } 实现Runnable接口 推荐使用Runnable接口,实现Runnable接口可以继承其他类,避免局限性 1 2 3 4 5 6 7 8 9 public class RunnableTest implements Runnable{ public static void main(String[] args) { new Thread(new RunnableTest()).start(); } @Override public void run() { System.out.println("hello you"); } } 实现Callable接口...

November 3, 2021 · 2 min · 262 words · ecturing