当前位置: 首页 > news >正文

K8S--安装Nginx

原文网址:K8S--安装Nginx-CSDN博客

简介

本文介绍K8S安装Nginx的方法。

1.创建Nginx目录及配置文件

mkdir -p /work/devops/k8s/app/nginx/{config,html}

在config目录下创建nginx.conf配置文件,内容如下:

# events必须要有
events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;#日志格式log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';#日志的路径access_log  /var/log/nginx/access.log  main;sendfile  on;keepalive_timeout  65;include /etc/nginx/conf.d/*.conf;server{# 监听的端口listen 80;server_name _;root /usr/share/nginx/html/;index index.html;}
}

在html目录下创建index.html,内容如下:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>K8S搭建nginx</title>
</head>
<body><h1>Hello World!</h1>
</body>
</html>

2.编写K8S配置文件

此配置文件用于创建Namespace、Deployment、Service。

  • Namespace:命名空间,用于区分应用。
  • Deployment:用于生成pod。
  • Service:用于将pod暴露到集群中,供其他pod或者外部访问。

到/work/devops/k8s/app/nginx/路径下,创建名为k8s.yaml的配置文件

# 创建命名空间,Deployment和Service中要引用。
apiVersion: v1
kind: Namespace
metadata:name: middlelabels:name: middle
---
# 创建Deployment
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentnamespace: middlelabels:app: nginx
spec:# 副本的数量replicas: 1selector:# 选择app=nginx的PodmatchLabels:app: nginx# 选择或创建的Pod的模板template:metadata:labels:app: nginxspec:# 容器的路径containers:- image: nginx:latestname: nginx-latestports:- containerPort: 80name: nginx-80# 容器内的路径volumeMounts:- name: configmountPath: /etc/nginx/nginx.conf- name: config-includemountPath: /etc/nginx/conf.d/- name: logmountPath: /var/log/nginx/- name: htmlmountPath: /usr/share/nginx/html/- name: certmountPath: /etc/nginx/cert/# 主机的路径volumes:- name: config #和volumeMounts中的内容要对应hostPath:path: /work/devops/k8s/app/nginx/config/nginx.conftype: File- name: config-include #和volumeMounts中的内容要对应hostPath:path: /work/devops/k8s/app/nginx/config/conf.d/type: DirectoryOrCreate- name: log #和volumeMounts中的内容要对应hostPath:path: /work/devops/k8s/app/nginx/logs/type: DirectoryOrCreate- name: html #和volumeMounts中的内容要对应hostPath:path: /work/devops/k8s/app/nginx/html/type: DirectoryOrCreate- name: cert #和volumeMounts中的内容要对应hostPath:path: /work/devops/k8s/app/nginx/cert/type: DirectoryOrCreate
---
# 创建Service
apiVersion: v1
kind: Service
metadata:name: nginx-servicenamespace: middlelabels:app: nginx
spec:ports:- name: nginx-portport: 8000   # Service监听的端口targetPort: 80  # nginx自身暴露的端口。对应Deployment的containerPort# 对外的端口号nodePort: 30003selector:app: nginx# NodePort类型可以对外暴露端口type: NodePort

3.启动Nginx

到/work/devops/k8s/app/nginx/路径下,执行此命令:

kubectl apply -f k8s.yaml

结果:

4.查看启动结果

法1:通过dashboard查看

法2:通过命令查看

kubectl get pods -A

结果: 

kubectl get services -A

结果 

4.访问Nginx

测试1:外部访问NodePort

访问:ip:nodePort端口号

测试2:访问集群

curl 10.100.95.158:8000

结果:

测试3:访问容器内部

先进入容器内部,再访问容器端口。

1.找到pod的名字

kubectl get pods -A

结果:

2.进入容器内部 

kubectl exec nginx-deployment-557c7b98b6-8l5r5 -n middle -it -- bash

结果:

 

3.访问Nginx

curl localhost:80

结果

备注:可以通过Ctrl+D退出。 

5.删除Nginx

到/work/devops/k8s/app/nginx/路径下,执行此命令:

kubectl delete -f k8s.yaml

结果:

 

http://www.lryc.cn/news/286593.html

相关文章:

  • [BUUCTF]-PWN:babyfengshui_33c3_2016解析
  • 小程序系列--9.生命周期
  • SQL注入实战操作
  • Microsoft Remote Desktop for Mac(远程桌面连接)激活版
  • 分布式日志
  • 21.云原生之ArgoCD CICD实战(部分待补充)
  • 一文读懂JavaScript DOM节点操作(JavaScript DOM节点操作详解)
  • 【Linux】常见指令(一)
  • C语言大师(8)异常处理
  • 网络防御保护——1.网络安全概述
  • SpringBoot整合ElasticSearch实现分页查询
  • [C++]使用yolov8的onnx模型仅用opencv和bytetrack实现目标追踪
  • 打造专业级ChatGPT风格聊天界面:SpringBoot与Vue实现动态打字机效果,附完整前后端源码
  • KMP-重复子字符串
  • 如何使用Markdown生成目录索引
  • R语言【taxa】——as_taxon():转换为 taxon 对象
  • Android状态栏布局隐藏的方法
  • idea创建公用依赖包项目
  • 设计模式之装饰器模式
  • 【Java万花筒】缓存与存储:Java应用中的数据处理利器
  • 解决nodejs报错内存泄漏问题,项目无法运行
  • 计算机网络-物理层基本概念(接口特性 相关概念)
  • 从规则到神经网络:机器翻译技术的演化之路
  • python 面经
  • Ubuntu (Linux) 下创建软链接(即符号链接,相当于windows下的快捷方式)方法
  • LeetCode.2765. 最长交替子数组
  • Springboot日志框架logback与log4j2
  • 浪花 - 用户信息展示+更新
  • xxe漏洞之scms靶场漏洞
  • Unity3d C#实现三维场景中图标根据相机距离动态缩放功能