Typora+iCloud+uPic搭建Markdown写作神器

我非常喜欢记录笔记,也使用过很多写笔记的APP,从印象笔记 –> Notion –> Emacs –> Bear–> 印象笔记,由于个人在不同阶段有不同记录笔记的需求,导致时常会去寻找满足所有需求的笔记APP。迁移笔记也是非常的痛苦,尤其是Markdown笔记迁移到非Markdown笔记APP。

个人喜欢使用Markdown写作,个人博客就是在Mac系统上使用Typora写完后,直接推送到Github Pages就行了,但是Typora是本地的Markdown编辑器,无法同步到移动端。

最近发现可以使用Typora + iCloud + uPic来记录我的笔记和博客了:

  • 使用Typora这种简洁高效的Markdown Editor来记录笔记和博客
  • 使用iCloud同步md文件到不同的客户端(如:Mac,iPhone等)
  • 使用uPic自动上传图片

这样就可以解决了我所有的记笔记的痛点了:

  1. 可以使用Markdown语法来记录笔记
  2. 在MacOS本地使用Typora写笔记高效方便,启动快,不用考虑文件同步丢失等问题
  3. 体验不再割裂,笔记和博客都使用Typora书写
  4. Markdown文件通过iCloud同步,实现多客户端同步,解决了我时常内购了笔记APP又切换APP导致的浪费
  5. uPic解决了我图床问题,之前笔记的图片存在本机,博客的图片存储github上
[阅读全文]

ingress-nginx 高并发实践

Nginx Ingress Controller 基于 Nginx 实现 Kubernetes Ingress API。Nginx 是一款高性能网关,在实际生产环境运行时,需要对参数进行调优,以保证其充分发挥高性能的优势。

本文将介绍针对 Nginx Ingress 全局配置与内核参数调优的方法及其原理,让 Nginx Ingress 更好的适配高并发业务场景。

[阅读全文]

ingress-nginx的安装使用

开源的 Ingress Controller 的实现使用量最大的莫过于 Ingress Nginx 了,可作为反向代理将外部流量导入集群内部,将 Kubernetes 内部的 Service 暴露给外部,在 Ingress 对象中通过域名匹配 Service,这样就可以直接通过域名访问到集群内部的服务了。

实际 Ingress Nginx 有两种实现:

  1. https://github.com/kubernetes/ingress-nginx
  2. https://github.com/nginxinc/kubernetes-ingress

第一种是 Kubernetes 开源社区的实现,第二种是 Nginx 官方的实现,我们通常用的是 Kubernetes 社区的实现,这也是本文所关注的重点。

[阅读全文]

Kubernetes API资源的使用

使用哪个API Group 和Version呢?

在使用Kubernetes的时候,因为有太多的资源、太多的版本、太多的组了,这些都非常容易产生混淆。如果我们通过 YAML 文件定义过 Deployment 这样的资源清单文件的话,那么你应该会看到apiVersion: apps/v1beta2apiVersion: apps/v1等等这样的信息,那么我们到底应该使用哪一个呢?哪一个才是正确的呢?如何检查Kubernetes集群支持哪些?其实我们使用kubectl工具就可以来解决我们的这些疑惑。

当前我使用的Kubernetes的版本是1.18.8

[阅读全文]

删除Github远程提交记录

最近我在快速提交代码到Github远程仓库的时候,发现提交了一些非必须文件,如缓存文件,而且这些文件比较大,影响了CI工具拉取github仓库的状态(CI工具网速不够快),导致无法将最新的提交触发CI。

这里快速介绍一种快速的方法:

第一步:快速找到你要回滚的git commit id

git log

第二步:将本地变更回滚(切记使用–soft,这样会保存你工作区的变更,只是移除了暂存区的代码,不要使用–hard)

git reset --soft commit-id-xxxxxx

第三步:缓存你工作区的变更

git stash

第四步:

git push --force --no-verify

这时候github远程仓库,已经回滚到你reset的commitId了。切记如果这时候有别人最新的提交也是会回滚的。

第五步:

git stash pop

这样你又可以修改本地的修改,之后再次提交就好了。

使用Kind快速构建Kubernetes集群

现在安装 Kubernetes 集群已经变得越来越简单了,出现了很多方案,各种方案都有自己适合的使用场景。虽然我们可以很快速在云环境下面启动一个 Kubernetes 集群,但是对于开发人员通常更喜欢能够快速上手的东西,Kubernetes in Docker(Kind)这个工具就可以通过创建容器来作为 Kubernetes 的节点,我们只需要在机器上安装 Docker 就可以使用,它允许我们在很短的时间内就启动一个多节点的集群,而不依赖任何其他工具或云服务商。

前面的文章也讲过如何在本地使用Vagrant来快速搭建Kubernetes集群,但还是有点麻烦,而且需要自己去定制Vagrant Box,有一定的技术门槛。

[阅读全文]

Vagrant定制Box

为Kubernetes定制Centos7 Box

很多人在学习Kubernetes之前,都会苦恼如何搭建一个集群环境呢?你可以使用新版的Docker快速搭建一个单Master的集群,你也可以购买云厂商的集群服务;使用Docker安装集群非常的简单,但是只能是单master节点;购买云厂商的集群服务可以拥有所有的集群功能,而且任意购买云存储,外网LoadBalancer等,但是费用昂贵,因为k8s集群对机器的要求还是不低的。那有没有其他的选择呢?下面给大家介绍我是如何在本地快速搭建k8s集群的。

使用Vagrant定制Centos7 Box,里面包含了Linux参数优化,Docker,Kubectl,Kubeadm,Kubelet等。这样就可以通过这个Vagrant Box启动多个节点的k8s集群了。

最近花了点时间将所有的配置都脚本化,可以通过CLI的方式快速构建基础Box或者删除。

[阅读全文]

凤凰项目读后感

花了2天的时间看完这本书:《凤凰项目(沙盘特别版)》,感触颇深。和所有讲DevOps相关的书不同,感觉就在读小说一样,而且非常的励志,讲述了一家陷入困境的传统制造业公司,怎么凭借凤凰项目(或者独角兽项目)起死回生的。IT运维在其中发挥了只管重要的作用。

最近这半年来,我大部分的工作也集中在开发运维上,在这个过程中,也接触到了很多DevOps相关的知识和实践,虽然书中很多东西比较旧,但是还是有很多只得借鉴的地方。 读这本书的时候,有很多地方产生了共鸣,一度让我回忆起了之前参与公司的TWI中的课程,关于敏捷和精益的部分,尤其是精益思想。

[阅读全文]