本文主要讲述一种快速部署Kubernetes服务器的方法。

准备工具:

  • VirtualBox
  • Vagrant

1. Vagrant配置文件

  1. 创建一个空目录,并通过命令行进入此空目录。

  2. 执行以下命令

    vagrant init alvistack/kubernetes-1.22
    
  3. 打开自动创建的 Vagrantfile 文件。增加 config.vm.network "public_network", bridge: "enp3s0" 配置。其中 enp3s0 为本机网卡。此配置用于桥接 enp3s0 网卡。如果需要使用 hostonly 模式的网卡,可修改 config.vm.network "private_network" 对应的配置。

2. 启动虚拟机

  1. 在此目录下执行

    vagrant up
    

3. 重新生成密钥

  1. 替换以下脚本中 NEW_IP 参数为本机IP地址,并在 root 账号下执行该脚本。

    export NEW_IP=192.168.16.101
    
    cd /etc/kubernetes/pki
    openssl x509 -noout -text -in apiserver.crt
    openssl genrsa -out apiserver.key 2048
    openssl req -new -key apiserver.key -subj "/CN=kube-apiserver" -out apiserver.csr
    
    cat > apiserver.ext << EOF
    subjectAltName = DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, DNS:ubuntu, IP:10.233.0.1, IP:10.0.2.15, IP:${NEW_IP}
    EOF
    
    openssl x509 -req -in apiserver.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out apiserver.crt -days 3650 -extfile apiserver.ext
    openssl x509 -noout -text -in apiserver.crt
    
  2. 重启服务器

4. 总结

本文使用Vagrant和VirtualBox组合,能够快速启动K8s服务供应用中心开发者或其他需要使用到K8s服务的同学们使用。