已解决
k8s 部署nginx前端
来自网友在路上 158858提问 提问时间:2023-10-27 21:46:00阅读次数: 58
最佳答案 问答题库588位专家为你答疑解惑
1.构建docker镜像,k8s拉取镜像运行
docker自己安装
[root@master1 ~]# docker pull nginx:1.24.0
[root@master1 ~]# mkdir k8s-nginx
[root@master1 ~]# cd k8s-nginx
[root@master1 k8s-nginx]# vim nginx.conf
server_tokens off;server {listen 8010; #web访问端口server_name localhost;keepalive_timeout 65;proxy_connect_timeout 300;proxy_send_timeout 300;proxy_read_timeout 300;location / {root /etc/nginx/dist; #web代码路径index index.html index.htm;}#后端代码接口配置#location /api {# proxy_pass http://127.0.0.1:8001;# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
[root@master1 k8s-nginx]# mkdir dist #这个dist是前端包目录,我这里只做个测试
[root@master1 k8s-nginx]# cd dist
[root@master1 dist]# vim index.html
this is a test!
写Dockerfile:
[root@master1 k8s-nginx]# vim Dockerfile
FROM nginx:1.24.0COPY nginx.conf /etc/nginx/conf.d/web.confCOPY dist /etc/nginx/dist
构建镜像:
[root@master1 k8s-nginx]# docker build -t nginx:v1 .
Sending build context to Docker daemon 5.12 kB
Step 1/3 : FROM nginx:1.24.0---> 6b753f58c54e
Step 2/3 : COPY nginx.conf /etc/nginx/conf.d/web.conf---> Using cache---> c67c98f8e802
Step 3/3 : COPY dist /etc/nginx/dist---> 546db553f62a
Removing intermediate container d9a8e88cb4da
Successfully built 546db553f62a
将镜像上传到镜像仓库,我这里是上传到阿里云的镜像仓库
仓库地址:
https://cr.console.aliyun.com/cn-zhangjiakou/instance/credentials登录镜像仓库:
docker login --username=asula registry.cn-zhangjiakou.aliyuncs.com推送镜像:
docker tag nginx:v1 registry.cn-zhangjiakou.aliyuncs.com/ymku/nginx:v1
docker push registry.cn-zhangjiakou.aliyuncs.com/ymku/nginx:v1
k8s拉取私有仓库需要登录,有时候不可能为每个k8s节点登录
我们就需要为创建k8s集群的secret,设置秘钥配置imagePullSecrets
1.创建secret
kubectl create secret docker-registry secret名 --docker-server=仓库地址 --docker-username=用户名 --docker-password=密码
例如:
kubectl create secret docker-registry secret-key --docker-server=registry.cn-zhangjiakou.aliyuncs.com --docker-username=ABCD --docker-password=QWER!@
--docker-server=registry.cn-zhangjiakou.aliyuncs.com #阿里云仓库地址
--docker-username=ABCD #阿里云仓库登录的用户名
--docker-password=QWER!@#$ #阿里云仓库的登录密码
2.删除secret
kubectl delete secret secret-key
编写k8s的yaml文件:
[root@master1 k8s-nginx]# vim nginx-test.yaml
apiVersion: v1
kind: Service
metadata:labels:app: nginx-serviename: nginx-servicenamespace: default
spec:ports:#对外暴露端口30003- nodePort: 30003port: 8010protocol: TCPtargetPort: 8010selector:app: nginx-web#NodePort对外暴露端口type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx-webname: nginx-webnamespace: default
spec:replicas: 1selector:matchLabels:app: nginx-webtemplate:metadata:labels:app: nginx-webnamespace: defaultspec:imagePullSecrets:- name: secret-keycontainers:- image: registry.cn-zhangjiakou.aliyuncs.com/ymku/nginx:v1name: nginximagePullPolicy: Alwaysports:- containerPort: 80resources:requests:cpu: 100mmemory: 1Gilimits:cpu: 100mmemory: 1Gi#pod内目录#volumeMounts:#- name: conf# mountPath: /etc/nginx/conf.d#- name: log# mountPath: /var/log/nginx#- name: html# mountPath: /etc/nginx/dist#宿主机目录需要自己创建#volumes:#- name: conf# hostPath:# path: /root/k8s-nginx/nginx/conf.d#- name: log# hostPath:# path: /root/k8s-nginx/nginx/log#- name: html# hostPath:# path: /root/k8s-nginx/nginx/dist
[root@master1 k8s-nginx]# kubectl apply -f nginx-test.yaml
service/nginx-service configured
deployment.apps/nginx-web created
[root@master1 k8s-nginx]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-web-9f5fbbb7b-bjwvg 1/1 Running 0 3s
验证:http://10.10.10.10:30003/index.html
查看全文
99%的人还看了
相似问题
- 树莓派镜像安装 + 设置 + 镜像批量化操作 - 自动化烧写工具 (四)
- composer切换全局镜像源的方法
- 推荐一个windows上传linux服务器/linux服务器的docker镜像的工具,摆脱docker cp,以及解决常见问题。
- docker下移除不使用的镜像、容器、卷、网络
- 一起学docker系列之四docker的常用命令--系统操作docker命令及镜像命令
- qcow2、raw、vmdk等镜像格式工具
- 获取阿里云Docker镜像加速器
- 3.8-镜像的发布
- 【备忘录】Docker容器、镜像删除与资源清理命令
- 8.jib-maven-plugin构建springboot项目镜像,docker部署配置
猜你感兴趣
版权申明
本文"k8s 部署nginx前端":http://eshow365.cn/6-26333-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: VB.NET 三层登录系统实战:从设计到部署全流程详解
- 下一篇: 国际腾讯云直播推流配置教程!