Hot For Coding
  • 容器下快速部署HAProxy

    HAProxy

    在阿里云部署了Kubernetes集群,购买了SLB用于API负载均衡。阿里云的SLB负载均衡不支持ECS即当服务器端又当客户端,这会造成我们的Master节点在访问API时恰好回路到原节点会出现timeout情况。这种情况下只能Worker节点使用SLB转发到API,而Master节点最省事的方式就是在每个节点上自建一套HAProxy负载均衡到其余Master节点。

    而采用容器化Docker方式快速部署HAProxy非常非常容易

    首先新建一个目录供HAProxy使用

    mkdir /etc/haproxy
    

    ...

    READ ALL

  • kubectl drain Cannot evict pod as it would violate the pod's disruption budget 错误

    kubernetes

    最近在升级Kubernetes时遇到一个驱逐pods的错误,具体情况是这样的,我参照官方文档的升级说明,其中有一个步骤需要执行kubectl drain <worker-node-name> --ignore-daemonsets --delete-local-data命令,此命令将会腾空相应的节点。腾空是指驱逐节点现有的pods,忽略DaemonSet,并且不再接受新pods分配。命令如下,worker-node-name替换为实际节点名称

    ...

    READ ALL

  • 如何在运行babel-node时带node参数

    babel-node

    最近在使用Verdaccio时,发现一些问题,于是想在源码模式下debug代码。

    于是就遇见了一个问题,在我要添加用户时,提示我请求头子节过大

    431 Request Header Fields Too Large

    # npm adduser --registry http://localhost:4874                                                 
    Username: root
    Password:
    Email: (this IS public) root@example.com
    npm ERR! code E431
    npm ERR! 431 Request Header Fields Too Large - PUT http://localhost:4874/-/user/org.couchdb.user:root
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /Users/nicholas/.npm/_logs/2020-03-16T08_20_52_977Z-debug.log
    

    ...

    READ ALL

  • Rust中如何引入模块

    rust

    很多时候,我们写的代码需要按模块组织,因为我们无法将大量的代码都写在一个文件上,那样不容易维护,在Rust中我们声明一个模块非常简单,文件名就是模块名,所以创建一个模块就相当于创建一个文件。使用mod关键字引入模块,以下例子,我们创建一个math模块,并在main中引用

    math.rs

    pub fn sum(a: u32, b: u32) -> u32 {
      return a + b;
    }
    

    main.rs

    mod math;
    
    fn main() {
      println!("32 + 67 = {}", math::sum(32, 67));
    }
    

    ...

    READ ALL