使用nginx轻松管理kubernetes文件资源

引言

nginx在传统的使用中,一般是作为反向代理或者负载均衡。但是它还有一个很优秀的能力常被人们所忽略。

在kubernetes部署应用的过程中,会有大量的yaml等资源需要维护。集群内部维护起来不太方便,特别对于新手不太友好,有时操作不当还容易对集群稳定性造成损害,nginx自动文件索引功能就派上了大用场。

总体思路

将kubernetes资源文件抽取到集群之外的nginx中进行维护,nginx开启自动文件索引功能,此时每个资源文件会有自己的链接,kubernetes通过文件资源链接获取到yaml资源文件在集群内进行部署。也可以理解为nginx为kubernetes提供文件资源服务。

环境准备

在同一网络内,我准备了4台服务器,三台用作kubernetes集群服务器,一台用作nginx资源文件清单服务器。

k8s集群服务器资源文件清单服务器
172.31.0.2172.31.0.5
172.31.0.3
172.31.0.4

kubernetes集群搭建和nginx安装自行完成。

修改nginx配置

将nginx.conf原本的配置

location / {
    root   html;
    index  index.html index.htm;
}

修改为

location /sams/ {
    root   /data/;
    autoindex on;
}
location /edsp/ {
    root   /data/;
    autoindex on;
}

autoindex on;表示开启nginx自动文件索引功能。按照原来的设置访问nginx会进入到欢迎页,经过此番设置会展示目录下的文件资源。把samsedsp比作一个个不同的项目,无论项目多少与否只要往配置中添加即可。

nginx测试

在跟目录下创建/data/sams和/data/edsp文件夹,里面放入yaml文件。本地修改完上传非常方便。

然后我们通过访问会有如下效果,可以看出每个文件资源都有属于自己的链接地址。

做完上面的内容,说明资源文件清单服务器准备完毕。

集群域名解析

资源文件清单服务器ip地址写起来不太方便,我们可以将其写成域名的形式,比如:

# 由于在同一网络内,这里使用内网地址即可
echo "172.31.0.5  resource-inventory" >> /etc/hosts

集群内部署测试

[root@k8s-master ~]# kubectl apply -f http://resource-inventory/sams/namespace.yaml
namespace/hello created
[root@k8s-master ~]# kubectl apply -f http://resource-inventory/sams/nginx.yaml
pod/mynginx created
[root@k8s-master ~]# 
[root@k8s-master ~]# kubectl get ns
NAME                              STATUS   AGE
default                           Active   4d2h
hello                             Active   12m
[root@k8s-master ~]# kubectl get pod
NAME                                      READY   STATUS    RESTARTS   AGE
mynginx                                   1/1     Running   0          11m
[root@k8s-master ~]# 

成功创建了hello命名空间和mynginx的pod资源,测试完成!

本文由mdnice多平台发布

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要演示nginxKubernetes中的使用,可以按照以下步骤进行操作: 1. 首先,使用kubectl命令进入nginx容器内部。通过进入pod的name来进入容器,比如: [root@icv-k8s-node-1 ~]# kubectl exec -it edge-nginx-6d57745bc8-dm998 -- /bin/bash 2. 进入容器后,切换到nginx的html目录: root@edge-nginx-6d57745bc8-pgmdk:/# cd /usr/share/nginx/html 3. 可以执行apt-get update和apt-get install命令来更新和安装需要的软件包。 4. 编辑index.html文件,可以使用vim或其他编辑器: root@edge-nginx-6d57745bc8-dm998:/usr/share/nginx/html# vim index.html 5. 创建一个yaml文件,用于部署nginx服务: apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: app: nginx name: nginx-deployment spec: ports: - port: 89 protocol: TCP targetPort: 80 selector: app: nginx type: NodePort status: loadBalancer: {} 6. 使用kubectl命令应用该yaml文件,创建nginx服务: [root@icv-k8s-node-1 home]# kubectl apply -f k8s_ngx_expose.yaml 7. 可以使用kubectl expose命令暴露nginx服务的端口,比如: [root@icv-k8s-node-1 home]# kubectl expose deployment nginx-deployment --port=88 --target-port=80 --type=NodePort 通过这个命令,可以将nginx的80端口暴露为集群中的一个NodePort。 这样,nginxKubernetes中的使用就完成了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [从零开始:使用 Kubernetes 部署 Nginx 应用](https://blog.csdn.net/qq_33589510/article/details/131478541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻啦猫@_@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值