搭建k8s并实现外网访问(花生壳内网穿透)

您所在的位置:网站首页 花生壳网站搭建 搭建k8s并实现外网访问(花生壳内网穿透)

搭建k8s并实现外网访问(花生壳内网穿透)

2024-02-11 04:50| 来源: 网络整理| 查看: 265

搭建流程前言

网上搭建k8s的方式非常非常多,有all in one的minikube,也有kubeadm,还有一键完成搭建等等。但是这些方式的搭建对于学习k8s的各个组件的用途和通讯方式没有太大的帮助。另外也可以在阿里云上 也提供了k8s的服务,优点就是方便!!缺点就是对于个人的学习来说,成本太高了!!

怎么去搭建一个便于自己学习并且能够对外部提供服务的k8s集群呢?

起初的想法是在内网服务器搭建K8S单master单node,并且在阿里云购买一台服务器,部署frp服务 端,再k8s的机器上装frp的客户端实现内网穿透,结果一看,阿里云最便宜的1核1G,2M带宽的机器要接近1000元一年,如果仅仅需要一个内网穿透的服务器,根本不需要花这么多钱。所以打消这个念头。

后来想起内网穿透不是可以使用花生壳吗?于是算了一下成本比自购云服务器低,而且不用自己再去搭 建frp服务端,省了一些功夫,并且花生壳还有linux版的客户端,完美~~

本次搭建的主要说明:

1、学习k8s各个组件的作用和通讯方式,了解k8s二进制部署过程。

2、将k8s内创建的服务映射到外网(使用花生壳)。

3、由于是个人学习的k8s,因此就搭建单master和单node,etcd也是搭建单节点。

4、这个搭建过程也是我在网上查资料,然后参照一步步搭建过来的,其中网上的一些小坑先踩了,但 不保证我这里没有小坑。

5、文中涉及的安装包在这里:https://pan.baidu.com/s/1khWz7_8WFpaPoyp_yITrRg 提取码:blnn

基本信息 机器配置 k8s版本 docker版本 master节点:2核4G,系统版本:centos7,IP:192.168.60.107 1.18 1.19 node节点:2核4G,系统版本:centos7,IP:192.168.60.124 1.18 1.19 0、初始化

执行初始化脚本(master和node站点都要运行)

1、生成集群自签证书

生成集群自签证书(K8S集群使用https通信,因此需要自签证书)

生成kube-apiserver证书

使用自签CA签发kube-apiserver HTTPS证书

(kube-apiserver必须把IP和经过hosts解析的机器名添加上去,以防止以后需要重新生成证书和替换)

2、部署etcd单节点

由于只是搭建两台机器的学习环境,因此etcd将装在master节点上。所以部署etcd将在 192.168.60.107这台机器上完成。

创建etcd配置文件

使用systemd管理etcd

3、全部节点安装docker

systemd管理docker

4、部署master节点

以下主要部署master节点中三个必须要的程序kube-apiserver,kube-controller-manager,kube- scheduler 从Github下载二进制文件(这个文件也放在部署软件中)

h ttps://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#v1183

解压二进制包(注意,如果要将master节点也像node节点一样显示在kubectl get node上,那么需要安装kubelet

也在解压出来的目录下server/bin下,跟kube-apiserver等一起拷贝过去就可以了)

a、部署kube-apiserver

b、部署kube-controller-manager

c、部署kube-scheduler

5、部署node节点

这里就需要切换到node节点192.168.60.124服务器上操作,不过有些发送证书和文件的操作还是要回到master节点操作一下,到时候具体会说明白。

a、部署kubelet

注意!!生成bootstrap.kubeconfig文件(这里是在master节点部署,完了之后吧文件拷贝到node)至于TOKEN的值,看步骤4的token.csv的token值,由于是临时导入环境变量,需要同一个远程窗口完成 操作以下操作)

注意!!下面的步骤需要切换回到master进行如下操作批准kubelet证书申请并加入集群

查看kubelet证书请求

kubectl get csr

b、部署kube-proxy

注意!!这里回到master节点生成kube-proxy.kubeconfig文件生成kubeconfig文件

systemd管理kube-proxy

c、部署cni网络

d、安装Kuboard(推荐)

6、使用花生壳映射

这里回到master节点进行操作,将花生壳装在master节点

a、下载安装花生壳

b、绑定花生壳

这里复制上面的http://b.oray.com, 在浏览器上输入之后会弹出如下:

填入之后进入管理界面之后会显示激活,绑定设备

可以使用花生壳管理APP扫描或者微信扫一扫完成激活,我是使用密码激活的方式,点击右上角的密码激活

输入账号密码后可以看到在激活中。

激活成功后点击进入管理平台

进入管理平台后,点击内网穿透,添加映射

c、创建映射

这里将kuborad的页面映射出去,或者如果需要将kube-apiserver映射出去也可以,这里暂时只演示 kuborad映射方式

新增https的映射,内网主机填node节点的IP,内网端口填写刚刚部署kuboard的端口,这里选择动态端口,80端口的映射稍后再使用。

创建完了之后,就可以使用域名+端口方式访问kubard页面

可以看到已经将服务映射出去了。登录的时候需要获取token才能登录,可以在k8s-master节点执行如下命令获取token

d、映射k8s的服务到公网

前面只是将kuboard的页面映射出去,如果不需要映射页面,可以选择映射API的地址出去,这样可以远程执行yaml文件进行部署。

这里介绍通过kuboard创建deployment,并且将其映射出去。

点击到default这个namespace,选择应用程序,再选择控制器,点击Deployments,点击创建 Deployments。

在服务分层选择展示层,服务名称选择nginx,副本数量选择1个即可,因为只有一台node。

在容器名称和镜像都填nginx,使用nginx来做基本的测试

service我们这里选择使用nodeport的方式,不用ingress,点击保存

可以看到已经创建完毕

下面回到花生壳页面将nginx映射出外网 ,使用80端口映射

使用外网域名访问,成功将nginx页面映射到外网

e、最后说明

本次主要是为了展示内网搭建k8s结合花生壳软件使用过程,不过由于现在花生壳免费级只能创建一条 映射,因此我是升级了付费级服务,但是总体成本还是比购买云服务器少,另外为了以后的映射安全, 我还购买了https的映射,整体下来也不贵,比较适合个人搭建学习的k8s环境,另外本教程仅限于让大家了解一些k8s各个组件的搭建和个人初步学习用途,如果需要搭建企业级K8S环境,还要参考多master和多node节点的搭建。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3