gradle拷贝静态资源文件_k8s集群部署上线web静态网站

084bd3af38a7358387a78a971cea8790.gif

环境准备

一台部署节点,一台master节点,还有两台节点node1,node2 完好的k8s集群环境

2337a39e57419ac148ac14ca322cea22.png

部署节点操作:

1)编排httpd.yml文件

ea22f5a797e5d148b6ba0373dee9f131.png

容器端口为80,副本数为3. 这里因为我是上线的apache服务,所以使用httpd的镜像,当然也可以使用nginx或者tomcat,但需要注意的是各自的根目录不一样。

2)然后执行如下命令创建deployment,生成pod

                kubectl  apply -f  httpd.yml            

node节点:3)根据pod的name在分别在22和21节点查找容器

d228f4f68a02ffd05a4009bdb52cd6d6.png

4)创建目录/usr/local/apache2/htdocs ,然后上传一个静态资源包,我这里上传一个飞机大战的小游戏。  #这里我们需要知道的是,这也是httpd容器的根目录

[root@node1 htdocs]# lsgame.zip[root@node1 htdocs]# unzip game.zip 解压后是这个样子[root@node1 htdocs]# lsgame  jquery-1.8.3.min.js  readme.xls  sky_fight.html  sky.php

5)将以上文件全部拷贝到 3)步骤的容器里面的/usr/local/apache2/htdocs目录下

                [root@node2 apache2]# docker cp htdocs/ 9b20bb037dd8:/usr/local/apache2/htdocs            

6)进入容器的/usr/local/apache2/htdocs目录,查看文件是否拷贝成功,并且将原本的index,html文件移走或者删除 否则访问的就是此文件下的内容。—————》it work

[root@node2 apache2]# docker exec -it 9b20bb037dd8 /bin/bashroot@httpd-deployment-784d567c4d-2fxb2:/usr/local/apache2# lsbin  build  cgi-bin  conf  error  htdocs  icons  include  logs    modulesroot@httpd-deployment-784d567c4d-2fxb2:/usr/local/apache2# cd htdocs/root@httpd-deployment-784d567c4d-2fxb2:/usr/local/apache2/htdocs# lshtdocs    index.htmltml @httpd-deployment-784d567c4d-2fxb2:/usr/local/apache2/htdocs# rm -rf index.htroot@httpd-deployment-784d567c4d-2fxb2:/usr/local/apache2/htdocs# cd htdocs/root@httpd-deployment-784d567c4d-2fxb2:/usr/local/apache2/htdocs/htdocs# lsgame      images           readme.xls  sky_fight.htmlgame.zip  jquery-1.8.3.min.js  sky.php

7) 以上步骤成功后又回到部署节点编写一个service的编排文件

5dc6d80fc4779172b8554dc54ac4be9a.png

节点的静态端口设置为26055,service端口为8080.注意框内的run: httpd。要与1)步骤的编排文件的label name对应。

8)启动编排文件,生成service。

                kubectl  apply -f  svc.yml             

9)查看service的状态

[root@dlp yml]# kubectl get svc -o wideNAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE       SELECTORhttpd-svc    NodePort    10.68.90.148           8080:26055/TCP   22h       run=httpdkubernetes   ClusterIP   10.68.0.1              443/TCP          1d        nginx-svc2   NodePort    10.68.26.208           8081:30001/TCP   21h       run=nginx

10)在不属于k8s集群的任意主机上访问。格式为nodeip + nodeport 。例如:

c9f14851610fc075117c5a46bc6c86f5.png

因为是静态网站,所以我们去web浏览器上访问效果更好。

03f28ef78148ec8450f7ee5f65a25d1e.png

11) 但是这样只是做了一个节点的可用,我们要想将21节点加入服务端。需要将/usr/local/apache/htdocs目录当成nfs的共享目录挂载到其他节点上。并且通过将此目录下的资源拷贝到节点容器内,而不是通过目录映射,为什么呢?因为通过目录映射的方式会重新生成一个容器,而不是1)步骤通过编排文件生成的pod容器。这样通过nodeport就无法访问静态资源而是通过宿主机映射的端口来访问。

12)在21节点上执行3、4、5、6步骤,然后访问浏览器,显示效果如下:

56a815c83894cfdfeffe7da4b6aceb36.png

可以看到集群的节点都实现了静态网站上线,如果集群内的pod down掉k8s集群会根据副本数自动生成新的pod,实现高可用。

原创地址:https://www.cnblogs.com/zzzynx/p/11137755.html 

原创作者:四次元猪肉佬6f9713d97c1a46ed6637e4fe497a0842.png

eb338735ebc6bade039c185616d8782f.png

ca3de692b3e9c931cc5eb484ac20f68f.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值