一个计算机技术爱好者与学习者

0%

需求描述

当前有十台主机,主机IP为192.168.56.101-110,用户为voidking,具有sudo权限。
现在想要用这十台主机搭建一个K8S集群,版本1.22.15,其中3台作为master,7台作为worker。

参考文档:

安装思路

最简单的方法,我们可以使用kubeadm逐个主机进行安装配置,参考《kubeadm安装部署K8S集群——CentOS篇》

但是挨个安装效率太低了,所以我们希望能够批量安装,使用 ansible+kubeadm 。有一个kubeadm-ansible项目,可以使用ansible+kubeadm实现批量安装,但是已经废弃了(两年没有更新,issue也没人处理)。
因此,需要自行实现ansible+kubeadm的批量安装方式。

此外,因为要3台master配置高可用,所以还要安装keepalived+haproxy。

整体操作流程:

  • 管理节点安装配置ansible
  • 所有节点安装docker
  • 所有节点允许iptables检查桥接流量
  • 所有节点安装kubeadm+kubelet+kubectl
  • master节点安装keepalived+haproxy
  • 初始化master节点(创建集群)
  • worker节点加入到集群中
  • 测试使用

为方便描述,下文中使用主机IP的最后一段作为该主机的简称,例如:192.168.56.101简称为101

阅读全文 »

spark-on-k8s-operator简介

spark-on-k8s-operator: Kubernetes operator for managing the lifecycle of Apache Spark applications on Kubernetes.
The Kubernetes Operator for Apache Spark aims to make specifying and running Spark applications as easy and idiomatic as running other workloads on Kubernetes. It uses Kubernetes custom resources for specifying, running, and surfacing status of Spark applications.

spark-on-k8s-operator工作流程:
1、提交sparkApplication的请求到api-server
2、把sparkApplication的CRD持久化到etcd
3、operator订阅发现有sparkApplication,获取后通过submission 4、runner提交spark-submit过程,请求给到api-server后生成对应的driver/executor pod
5、spark pod monitor会监控到application执行的状态(所以通过sparkctl可以通过list、status看到)
mutating adminission webhook建svc,可以查看spark web ui

简而言之,spark-on-k8s-operator改变了传统的spark任务运行方式,能够提高资源利用率和节省资源。用户提交CRD之后,k8s才会创建运行spark任务需要的pod,从而能够利用整个k8s集群的资源。任务跑完之后,pod会被回收,从而节省资源。

参考文档:

阅读全文 »

网络代理

《好好学Linux:Linux配置SNAT上网》一文中,我们了解到,通过SNAT的方式能够让局域网中所有主机都能访问外网。
而网络代理,也能让局域网中所有主机都能访问外网。并且,如果网络代理支持科学上网,那么所有使用这个代理的主机也可以科学上网。

本文我们就来学习一下Linux中常见的网络代理配置方法,参考文档:

阅读全文 »