0%

原文地址:https://haiyux.cc/2022/09/21/k8s-install/

虚拟机准备

我这里准备了三台虚拟机,分别部署一个master和两个node,操作系统位ubuntu 20.04。以下为特殊说明为三台机器都要做此操作

安装容器runtime

之前,我们用的容器runtime基本都是docker,但是docker并没有实现k8s的CRI,是在kubelet的有一个组件叫docker-shim做转化,在kubernetes v1.24版本以上这个组件已经废弃,这里选择containerd做容器runtime。当然,containerd是可以使用docker的镜像的。如果非要使用docker的话,被kubernetes废弃的docker-shim被docker自己维护起来了,可以试试看。但是不建议纯纯的浪费资源。

什么是发布和订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。

Redis 客户端可以订阅任意数量的频道。

发布和订阅

1、客户端可以订阅频道如下图

2、当给这个频道发布消息后,消息就会发送给订阅的客户端

macOS

全局

  • Command + Shift + P / F1 显示命令面板
  • Command + P 快速打开
  • Command + Shift + N 打开新窗口
  • Command + W 关闭窗口

基本

  • Command + X 剪切(未选中文本的情况下,剪切光标所在行)
  • Command + C 复制(未选中文本的情况下,复制光标所在行)
  • ``Option + Up` 向上移动行
  • Option + Down 向下移动行
  • Option + Shift + Up 向上复制行
  • Option + Shift + Down 向下复制行
  • Command + Shift + K 删除行
  • Command + Enter 下一行插入
  • Command + Shift + Enter 上一行插入
  • Command + Shift + \ 跳转到匹配的括号
  • Command + [ 减少缩进
  • Command + ] 增加缩进
  • Home 跳转至行首
  • End 跳转到行尾
  • Command + Up 跳转至文件开头
  • Command + Down 跳转至文件结尾
  • Ctrl + PgUp 按行向上滚动
  • Ctrl + PgDown 按行向下滚动
  • Command + PgDown 按屏向下滚动
  • Command + PgUp 按屏向上滚动
  • Command + Shift + [ 折叠代码块
  • Command + Shift + ] 展开代码块
  • Command + K Command + [ 折叠全部子代码块
  • Command + K Command + ] 展开全部子代码块
  • Command + K Command + 0 折叠全部代码块
  • Command + K Command + J 展开全部代码块
  • Command + K Command + C 添加行注释
  • Command + K Command + U 移除行注释
  • Command + / 添加、移除行注释
  • Option + Shift + A 添加、移除块注释
  • Option + Z 自动换行、取消自动换行

多光标与选择

  • Option + 点击 插入多个光标
  • Command + Option + Up 向上插入光标
  • Command + Option + Down 向下插入光标
  • Command + U 撤销上一个光标操作
  • Option + Shift + I 在所选行的行尾插入光标
  • Command + I 选中当前行
  • Command + Shift + L 选中所有与当前选中内容相同部分
  • Command + F2 选中所有与当前选中单词相同的单词
  • Command + Ctrl + Shift + Left 折叠选中
  • Command + Ctrl + Shift + Right 展开选中
  • Alt + Shift + 拖动鼠标 选中代码块
  • Command + Shift + Option + Up 列选择 向上
  • Command + Shift + Option + Down 列选择 向下
  • Command + Shift + Option + Left 列选择 向左
  • Command + Shift + Option + Right 列选择 向右
  • Command + Shift + Option + PgUp 列选择 向上翻页
  • Command + Shift + Option + PgDown 列选择 向下翻页

查找替换

  • Command + F 查找
  • Command + Option + F 替换
  • Command + G 查找下一个
  • Command + Shift + G 查找上一个
  • Option + Enter 选中所有匹配项
  • Command + D 向下选中相同内容
  • Command + K Command + D 移除前一个向下选中相同内容

进阶

  • Ctrl + Space 打开建议
  • Command + Shift + Space 参数提示
  • Tab Emmet插件缩写补全
  • Option + Shift + F 格式化
  • Command + K Command + F 格式化选中内容
  • F12 跳转到声明位置
  • Option + F12 查看具体声明内容
  • Command + K F12 分屏查看具体声明内容
  • Command + . 快速修复
  • Shift + F12 显示引用
  • F2 重命名符号
  • Command + Shift + . 替换为上一个值
  • Command + Shift + , 替换为下一个值
  • Command + K Command + X 删除行尾多余空格
  • Command + K M 更改文件语言

导航

  • Command + T 显示所有符号
  • Ctrl + G 跳转至某行
  • Command + P 跳转到某个文件
  • Command + Shift + O 跳转到某个符号
  • Command + Shift + M 打开问题面板
  • F8下一个错误或警告位置
  • Shift + F8 上一个错误或警告位置
  • Ctrl + Shift + Tab 编辑器历史记录
  • Ctrl + -后退
  • Ctrl + Shift + - 前进
  • Ctrl + Shift + M Tab 切换焦点

编辑器管理

  • Command + W 关闭编辑器
  • Command + K F 关闭文件夹
  • Command + \ 编辑器分屏
  • Command + 1 切换到第一分组
  • Command + 2 切换到第二分组
  • Command + 3 切换到第三分组
  • Command + K Command + Left 切换到上一分组
  • Command + K Command + Right 切换到下一分组
  • Command + K Command + Shift + Left 左移编辑器
  • Command + K Command + Shift + Right 右移编辑器
  • Command + K Left 激活左侧编辑组
  • Command + K Right 激活右侧编辑组

文件管理

  • Command + N 新建文件
  • Command + O 打开文件
  • Command + S 保存文件
  • Command + Shift + S 另存为
  • Command + Option + S 全部保存
  • Command + W 关闭
  • Command + K Command + W 全部关闭
  • Command + Shift + T 重新打开被关闭的编辑器
  • Command + K Enter 保持打开
  • Ctrl + Tab 打开下一个
  • Ctrl + Shift + Tab 打开上一个
  • Command + K P 复制当前文件路径
  • Command + K R 在资源管理器中查看当前文件
  • Command + K O 新窗口打开当前文件

显示

  • Command + Ctrl + F 全屏、退出全屏
  • Command + Option + 1 切换编辑器分屏方式(横、竖)
  • Command + + 放大
  • Command + - 缩小
  • Command + B 显示、隐藏侧边栏
  • Command + Shift + E 显示资源管理器 或 切换焦点
  • Command + Shift + F 显示搜索框
  • Ctrl + Shift + G 显示Git面板
  • Command + Shift + D 显示调试面板
  • Command + Shift + X 显示插件面板
  • Command + Shift + H 全局搜索替换
  • Command + Shift + J 显示、隐藏高级搜索
  • Command + Shift + C 打开新终端
  • Command + Shift + U 显示输出面板
  • Command + Shift + V Markdown预览窗口
  • Command + K V 分屏显示 Markdown预览窗口

调试

  • F9 设置 或 取消断点
  • F5 开始 或 继续
  • F11 进入
  • Shift + F11 跳出
  • F10 跳过
  • Command + K Command + I 显示悬停信息

集成终端

  • Ctrl +显示终端 Ctrl + Shift +新建终端
  • Command + Up 向上滚动
  • Command + Down 向下滚动
  • PgUp 向上翻页
  • PgDown 向下翻页
  • Command + Home 滚动到顶部
  • Command + End 滚动到底部

windows & linux

注释:

make

make是一个构建自动化工具,会在当前目录下寻找Makefile或makefile文件。如果存在相应的文件,它就会依据其中定义好的规则完成构建任务。

我们在微服务框架 kratos v2 的默认项目模板中 kratos-layout 使用了 google/wire 进行依赖注入,也建议开发者在维护项目时使用该工具。

wire 乍看起来比较违反直觉,导致很多同学不理解为什么要用或不清楚如何用(也包括曾经的我),本文来帮助大家理解 wire 的使用。

使用

下载

go install github.com/go-kratos/kratos/cmd/kratos/v2@latest

查看是否安装成功

kratos -v

kratos version v2.1.3

升级

kratos upgrade

查看帮助

kratos --help
Kratos: An elegant toolkit for Go microservices.

Usage:
  kratos [command]

Available Commands:
  changelog   Get a kratos change log
  completion  generate the autocompletion script for the specified shell
  help        Help about any command
  new         Create a service template
  proto       Generate the proto files
  run         Run project
  upgrade     Upgrade the kratos tools

Flags:
  -h, --help      help for kratos
  -v, --version   version for kratos

Use "kratos [command] --help" for more information about a command.

new命令

kratos new 命令为创建一个kratos项目

为什么要用熔断

前面我们讲过限流保证服务的可用性,不被突如其来的流量打爆。但是两种情况是限流解决不了的。

  1. 如果我们服务只能处理1000QPS,但是有10wQPS打过来,服务还是会炸。因为拒绝请求也需要成本。
  2. 服务但是io型的,会把mysql,redis,mq等中间件打挂。

所以,我们遵循一个思路,可不可以client端在失败的多的时候就不调用了,直接返回错误呢?

什么是自适应限流

自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。

您好,地球人,欢迎来到Kratos漫游指南。

对于刚开始研究Kratos框架的开发者来说,目前的文档有些零散,这与我们的模块化设计有一些关系,不过Don’t panic,从这篇文章开始,我将试图打破这一现状,漫游指南系列将循序渐进地介绍Kratos框架,理顺框架的使用思路,使您更快上手Kratos。

链路追踪的前世今生

分布式跟踪(也称为分布式请求跟踪)是一种用于分析和监控应用程序的方法,尤其是使用微服务架构构建的应用程序。分布式跟踪有助于精确定位故障发生的位置以及导致性能差的原因。