美文网首页
在线免费搭建k8s集群体验

在线免费搭建k8s集群体验

作者: 文景大大 | 来源:发表于2022-02-17 14:41 被阅读0次

    一、前言

    k8s集群搭建最大的问题就是需要有多个节点机器。

    • 在自己电脑上搞虚拟机,怕资源不够;
    • 用minikube搭建,只是一个单节点的集群,没啥意思;
    • 用云厂商的节点机器搭建,就需要自己花钱,而且还不少;

    所以有一个免费的网站可以供我们自行搭建k8s集群,且免费。这个网站就是:

    play-with-k8s,它有如下的特点及限制:

    • 需要有Github或者DockerHub的账号才能登录;
    • 同一个浏览器Session只能使用4个小时;
    • 最多可以使用5个节点机器;
    • 每台机器配置为1核4G;
    • 已经预装了Docker、kebuctl、kubelet、kubeadm等搭建k8s必须的组件;
    • 集群之间网络是互通的,但是外网无法访问该集群;

    二、准备工作

    登录平台后,使用自己的Github账号或者DockerHub账号登录,然后点击start,进入控制台界面后,先创建一个实例。

    三、K8s集群搭建

    3.1 初始化Master

    我们使用kubeam初始化Master节点:

    # --apiserver-advertise-address指定master在集群中的通讯地址
    # --pod-network-cidr指定集群的子网范围
    kubeadm init --apiserver-advertise-address 192.168.0.8 --pod-network-cidr=10.244.0.0/16
    

    执行结果如下:

    Master初始化结果

    执行内容主要包括:

    • kubeadm执行初始化前的检查;
    • 生成token和证书;
    • 生成kubeConfig文件,后续kubelet与Master节点通信时需要用到这个;
    • 安装Master组件,会从Google的Registry下载组件的Docker镜像。这一步可能会花一些时间,主要取决于网络质量;
    • 安装附加组件kube-proxy和kube-dns;
    • Kubernetes Master初始化成功;
    • 提示如何配置kubectl,参考3.2;
    • 提示如何安装Pod网络,参考3.3;
    • 提示如何注册其他节点到Cluster,参考3.4;

    3.2 配置kubectl

    # 为root用户使用kubectl做配置
    export KUBECONFIG=/etc/kubernetes/admin.conf
    

    3.3 安装Pod网络

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

    3.4 注册其他节点到Cluster

    此时我们只有一个master节点,可以执行如下命令查看下当前节点及Pod的情况:

    kubectl get nodes
    NAME    STATUS   ROLES                  AGE     VERSION
    node1   Ready    control-plane,master   2m57s   v1.20.1
    
    kubectl get pod --all-namespaces
    NAMESPACE     NAME                            READY   STATUS    RESTARTS   AGE
    kube-system   coredns-74ff55c5b-7x4b5         1/1     Running   0          4m49s
    kube-system   coredns-74ff55c5b-zvqrl         1/1     Running   0          4m49s
    kube-system   etcd-node1                      1/1     Running   0          3m48s
    kube-system   kube-apiserver-node1            1/1     Running   0          3m59s
    kube-system   kube-controller-manager-node1   1/1     Running   0          4m3s
    kube-system   kube-flannel-ds-dpdsk           1/1     Running   0          3m3s
    kube-system   kube-proxy-7pz5t                1/1     Running   0          4m49s
    kube-system   kube-scheduler-node1            1/1     Running   0          4m6s
    

    然后依次新建4个实例,执行如下的命令加入集群。

    kubeadm join 192.168.0.8:6443 --token pwavj7.pq9wskbhg1gc1ws3 \
        --discovery-token-ca-cert-hash sha256:8490581b6d223133473f0037104aaa9dac96f7dd9a01c3f54b3c50719540df24
    

    全部执行完毕后,我们可以通过kubectl get nodeskubectl get pod --all-namespaces查看节点和Pod的状态。最终等待一整子后,应该全部显示ready和running状态。

    至此k8s集群就搭建好了。

    四、总结

    说实话,体验不是很好。

    • 命令竟然不允许copy和paste,只能手动一个个得敲,浪费太多时间;
    • 对于普通用户,需要自己创建,然后切换到普通用户后,想要再换回root用户,不知道密码;
    • 普通用户执行kubectl时,sudo命令无法执行,只能使用root用户执行kubectl;

    总体来说,只能是一个玩具场所,体验一下k8s集群搭建的后半段。

    相关文章

      网友评论

          本文标题:在线免费搭建k8s集群体验

          本文链接:https://www.haomeiwen.com/subject/bghslrtx.html