Bootstrap

k8s学习--YAML资源清单文件托管服务nginx


前言

nginx 是一个开源的高性能 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在容器和 Kubernetes 的背景下,nginx 经常被用作静态文件服务器,它能够快速地提供静态资源(如 HTML、CSS、JavaScript 文件)的访问。在这种情况下,nginx 可以作为一个 YAML 资源清单文件的托管服务,简单地将静态文件托管在其中。

具体来说,你可以使用 nginx 将 YAML 资源清单文件(如 Kubernetes 的 Deployment、Service、ConfigMap 等配置文件)托管在服务器上,使得这些文件能够通过 HTTP 或 HTTPS 协议进行访问。这种做法在容器编排和自动化部署中非常常见,因为它提供了一种简单而可靠的方式来分发和管理配置文件。

应用

环境

虚拟机

Ip主机名cpu内存硬盘
192.168.10.11master012cpu双核4G100G
192.168.10.12worker012cpu双核4G100G
192.168.10.13worker022cpu双核4G100G
192.168.10.18nginx2cp双核2G100G

版本 centos7.9
已部署k8s-1.27

具体实现步骤

1.安装源码nginx及相关模块
wget http://nginx.org/download/nginx-1.24.0.tar.gz
wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz
wget https://github.com/aperezdc/ngx-fancyindex/releases/download/v0.5.2/ngx-fancyindex-0.5.2.tar.xz

这三个文件分别是:

nginx-1.24.0.tar.gz:
这是 nginx 的源代码压缩包,版本号为 1.24.0。nginx 是一个高性能的开源 Web 服务器和反向代理服务器。

echo-nginx-module-0.61.tar.gz:
这是 Echo 模块(echo-nginx-module)的源代码压缩包,版本号为 0.61。Echo 模块是一个用于 nginx 的第三方模块,可以用来进行高级的 HTTP 信息处理。

ngx-fancyindex-0.5.2.tar.xz:
这是 ngx-fancyindex 模块的源代码压缩包,版本号为 0.5.2。ngx-fancyindex 是一个 nginx 第三方模块,用于生成目录的漂亮索引页面,使得文件目录在 Web 界面上更加友好和易于浏览。

解压压缩包

tar xf v0.61.tar.gz 
tar xf ngx-fancyindex-0.5.2.tar.xz

安装nginx依赖包

yum -y install gcc prce-devel zlib-devel openssl-devel

解压安装包,配置,编译,安装

tar nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --add-module=/root/ngx-fancyindex-0.5.2/ --add-module=/root/echo-nginx-module-0.61
make && make install

命令

./configure 配置 #检测软硬件环境,定制安装参数
make 编译 #将源码文件转换为二进制文件
make install 安装 #将二进制文件复制到安装目录,完成初始化

2.修改nginx配置文件
vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
解释
fancyindex on;
开启fancy索引

fancyindex_exact_size off;
不使用精确的大小,使用四舍五入Byte

index index;
此处默认索引页为index

3.启动验证
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
nginx
nginx -v

在这里插入图片描述

设置nginx随机启动:

echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

Windows浏览器测试:http://192.168.10.18
在这里插入图片描述
在这里插入图片描述

可以看到是一模一样的

4.测试

在nginx服务器上写一个yaml文件
vim /usr/local/nginx/html/deployment1.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx1
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.20
          ports:
            - containerPort: 80

一个简单部署nginx的yaml文件

回到master节点
通过连接使用yaml文件

kubectl apply -f http://192.168.10.18/deployment1.yaml

在这里插入图片描述
查看

kubectl get deployments.apps

在这里插入图片描述

kubectl get pod

在这里插入图片描述
实验完成

总结

总结来说,nginx 是一个多功能的服务器软件,可以用于托管静态文件和服务,也可以用来托管 YAML 资源清单文件以供访问和部署。

;