首页 > 系统相关 >使用k8s部署nginx文件服务器

使用k8s部署nginx文件服务器

时间:2024-01-18 16:00:14浏览次数:37  
标签:name 配置文件 apk default nginx yaml 服务器 k8s

需要使用nginx部署一个外网文件服务器使用k8s部署
本次需要把一个apk文件映射到外网
前提条件

  1. 部署好的k8s集群
  2. 部署好的存储集群(glusterfs,NFS)

k8s的yaml配置文件

deployment文件
使用以下命令生成再修改

#  kubectl run apk-nginx --image=192.168.3.61/foundation/nginx --dry-run -o yaml
# cat apk-nginx-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    run: apk-nginx
  name: apk-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      run: apk-nginx
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: apk-nginx
    spec:
      containers:
      - image: 192.168.3.61/foundation/nginx
        name: apk-nginx
        resources: {}
        volumeMounts:
        - name: apk-nginx-volume
          mountPath: "/usr/share/nginx/html"
          readOnly: false
        - name: apk-nginx
          mountPath: /etc/nginx/conf.d/default.conf
          subPath: default.conf
      volumes:
      - name: apk-nginx-volume
        persistentVolumeClaim:
          claimName: apk-nginx-pvc
      - name: apk-nginx
        configMap:
          name: apk-nginx
status: {}

service的yaml配置文件
本次固定的NodePort的端口号

# cat apk-nginx-service.yaml 
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    run: apk-nginx
  name: apk-nginx
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: apk-nginx
  type: NodePort
  ports:
  - nodePort: 30336
    port: 80  
status:
  loadBalancer: {}

动态存储pvc的yaml文件
前提需要搭建好动态存储本次使用Heketi管理的GlusterFS存储
参考
https://www.cnblogs.com/minseo/p/12575604.html

]# cat apk-nginx-pvc.yaml 
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: apk-nginx-pvc
  namespace: default
  #annotations:
  #  volume.beta.kubernetes.io/storage-class: "glusterfs"
spec:
  #与storageclass名字对应
  storageClassName: gluster-heketi-storageclass
  # ReadWriteOnce:简写RWO,读写权限,且只能被单个node挂载;
  # ReadOnlyMany:简写ROX,只读权限,允许被多个node挂载;
  # ReadWriteMany:简写RWX,读写权限,允许被多个node挂载;
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 2Gi

nginx配置文件
因为需要使用文件服务器修改配置文件如下

# cat default.conf 
autoindex on;# 显示目录
autoindex_exact_size on;# 显示文件大小
autoindex_localtime on;# 显示文件时间
charset utf-8,gbk;#如果包含中文文件夹需要加此配置否则乱码
server {
    listen       80;
    server_name  localhost;
    root         /usr/share/nginx/html;
}

创建配置文件用于挂载至Pod

# 创建配置文件名称为apk-nginx 是从文件default.conf创建的
# kubectl create configmap apk-nginx --from-file=default.conf

使用以下命令查看创建的配置文件

# kubectl get configmaps apk-nginx -o yaml
apiVersion: v1
data:
  default.conf: |
    autoindex on;# 显示目录
    autoindex_exact_size on;# 显示文件大小
    autoindex_localtime on;# 显示文件时间
    charset utf-8,gbk;#如果包含中文文件夹需要加此配置否则乱码
    server {
        listen       80;
        server_name  localhost;
        root         /usr/share/nginx/html;
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2024-01-18T07:13:53Z"
  name: apk-nginx
  namespace: default
  resourceVersion: "11824529"
  selfLink: /api/v1/namespaces/default/configmaps/apk-nginx
  uid: 231faf36-b5d1-11ee-ae4a-525400e71cb5

应用所有yaml文件

# kubectl apply -f *.yaml

把需要外网访问的文件复制至容器,因为挂载了存储相当于复制到存储内

# kubectl cp README.md apk-nginx-58dd77957d-mj4k5:/usr/share/nginx/html

访问
任意node的ip+端口

# http://nodeIp:port

image

标签:name,配置文件,apk,default,nginx,yaml,服务器,k8s
From: https://www.cnblogs.com/minseo/p/17972672

相关文章

  • 服务器ssh连接提示 服务器拒绝了密码 再试一次
    应该是sshd的设置不允许root用户用密码远程登录 1、修改vim/etc/ssh/sshd_config 找到#Authentication:LoginGraceTime120PermitRootLoginwithoutpasswdStrictModesyes 改成 #Authentication:LoginGraceTime120PermitRootLoginyesStrictModesyes2、......
  • 阿里云服务器告警提示挖矿,怎么办
    前言最近我们团队为了研究数据湖相关的技术,在阿里云服务中购买了云服务器,但是突然被告警提示被挖矿,而且要在一定期限内解决挖矿问题,否则就会被关停服务。本篇记录了我们处理挖矿告警的过程,仅供参考。一、服务器为什么会被告警挖矿?云服务器中被恶意安装了脚本,然后脚本运行占用......
  • nginx的几个默认路径
    nginx的几个默认路径:https://blog.csdn.net/Mrzhang567/article/details/122248988?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170555854916800188566783%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=17055585491680......
  • 19、nginx中location语法
    1.概述在实际应用中,权限控制的需求更加复杂。例如,对于网站下的img目录允许所有用户访问,但对于网站下的admin目录则仅允许管理员身份的用户访问。此时,仅靠deny和allow这两个权限指令不能满足用户的需求,还需要使用location块来完成相关需求的匹配。2.location语法location......
  • 企业计算机服务器中了mkp勒索病毒如何处理,mkp勒索病毒解密
    网络技术的不断发展,为企业的生产运营提供了非常有利条件,但也为企业的数据安全埋下隐患,近期,众多企业的服务器遭到了mkp勒索病毒攻击,导致企业计算机服务器瘫痪无法正常工作,严重影响了企业正常生活运营。Mkp勒索病毒属于makop勒索家族,是新升级的加密程序,该勒索病毒具有较强的攻击与加......
  • 计算机服务器中了lockbit3.0勒索病毒如何处理,勒索病毒解密数据恢复
    近期,网络上的勒索病毒非常猖狂,给企业的生产运营带来了极大困难,网络技术的发展为企业的生产运营提供了极大便利,但也为企业的数据安全带来严重威胁。下面就为大家整理了以下有关lockbit3.0的处理建议。一,lockbit3.0勒索病毒特点攻击加密复杂。Lockbit3.0勒索病毒具有较强的攻击加密能......
  • 网络授时服务器 时钟同步服务器 gps时钟授时系统
    随着计算机网络规模的不断扩大,各种关键业务越来越多,口令保护、加密、电子认证等安全措施也日益显得重要,许多重要的安全措施都与时间有关。比如电子认证服务就要求加密证书的用户密码须严格与时间标记对应,该证书只在特定的时间窗口内有效,因此在该时间窗内,客户机的时间必须与服务器......
  • 18、nginx访问控制
    1.权限控制指令Nginx中提供了两个用于配置访问权限控制的指令,分别为allow和deny。allow用于设置允许访问的权限deny用于设置禁止访问的权限。在使用时,权限指令后只需跟上允许或禁止的IP、IP段或all即可。其中all表示所有的。单个IP指定作用范围最小,all指定作用范围最......
  • 探索Web开发的未来——使用KendoReact服务器组件
    KendoUI是带有jQuery、Angular、React和Vue库的JavaScriptUI组件的最终集合,无论选择哪种JavaScript框架,都可以快速构建高性能响应式Web应用程序。通过可自定义的UI组件,KendoUI可以创建数据丰富的桌面、平板和移动Web应用程序。通过响应式的布局、强大的数据绑定、跨浏览器兼容......
  • 连接云服务器及Linux常用指令学习
    连接云服务器及Linux常用指令学习:https://blog.csdn.net/qq_50748038/article/details/126124924centos超级用户普通用户切换:https://blog.csdn.net/day_in_night/article/details/39477155?ops_request_misc=&request_id=&biz_id=102&utm_term=centeros%20%E5%88%87%E6%8D%A2%......