现象
每当我通过扩展坞外接显示器,然后调整分辨率(修改DPI),再合上盖子或者重新启动,再次连接外接显示器就黑屏没反应,再也没有办法检测到显示器了。
研究
神奇的是我重装 macOS 就能恢复,经过一番研究(重装N次,时间机器恢复N次),发现是 macOS 在调整分辨率后会写入显示配置文件,然后系统就会触发这个Bug,显示器就再也识别不了了!
原生kubectl,在.bashrc中加入
1 | source <(kubectl completion bash) |
microk8s自带的kubectl,需要先设置别名
1 | alias kubectl=microk8s.kubectl |
https已经必不可少,经常部署vps手动申请部署证书很麻烦,证书会过期,需要定期更新,没这个精力,现在我们可以利用certbot自动申请ssl证书,非常方便。
certbot有很多种方式申请证书,具体可查看文档:https://certbot.eff.org/docs/,不同方式的用途不一样,如果只是静态网站,那么可以选择nginx插件部署,如果是科学上网,那么建议使用webroot更方便。
根据rxjs官网的说法,Observable是冷数据流,Subject是热数据流。
我的理解,从数据生成角度
举个例子
1 | import { Observable, Subject } from 'rxjs' |
最近看了看koa的源码,源码很简洁,组织的很清爽。
这里面最重要的一块是中间件的实现,koa通过koa-compose
串联到了一起。
koa-compose的设计目标: 每个中间件中的逻辑按照洋葱圈的方式执行。
1 | const Koa = require('koa'); |
需要一个方便部署应用的平台,搜索了以后选择主流的k8s。
k8s有很多安装方式,原生官方网站的安装方式很麻烦,组件众多,大多需要科学上网。于是开始寻找一种方便的安装方式,而且需要支持单机部署(master和worker节点在一个机器上),找到几个靠谱的方案。
minikube:它的好处是安装足够方便,指定docker国内镜像即可一路绿灯,安装完成。但是缺点是基本只能单机学习用,其master是安装在docker中的,对外发布的时候,不能像原生安装那样,设定一个port就能让集群外的人访问,只能本机访问,要对外发布的话,就有很大的成本,比较适合个人学习使用。
microk8s&k3s:这两个都是轻量级的k8s方案,安装较方便,内置了很多常用的插件和服务。但是同样的会遇到很多问题,不少问题都是他们自己封装的时候特有的,不方便排查。同时这两个都强制使用containerd作为驱动,作为容器标准化的产物,containerd相比少了一层交互,但是命令行完全没有docker用的舒服,同时令人费解的toml配置,很令人劝退。
部署工具安装:这是最终使用的方案,kubeadm部署工具,因为microk8s和k3s也无法摆脱科学上网,同时还增加了更多的问题。那为什么不使用官网的方式安装呢?事实证明按照官网安装是坑最少的,官网中文教程非常详细,而且有各种国内源加速,问题解决方法容易搜索到。
在内网环境安装yarn使用的时候,出现yarn一直没有响应的情况。
原因是yarn安装完成会做升级检查,内网环境无法访问外网请求。
只需要关闭yarn自升级检查即可。
1 | npm i yarn -g |