k8s部署nginx访问Tomcat

1.nginx打包镜像

bash 复制代码
#1、编写DockerFile

mkdir /opt/my_nginx_dockerfile

cd /opt/my_nginx_dockerfile
cat >default.conf<<'EOF' 
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /tomcat/ {
        proxy_pass http://tomcat-web-service;
        proxy_set_header   Host    $host;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}
EOF



cat  >/opt/my_nginx_dockerfile/Dockerfile << 'EOF'
FROM nginx
WORKDIR /etc/nginx/conf.d
RUN echo "nginx v1 version" >/usr/share/nginx/html/index.html
ADD default.conf /etc/nginx/conf.d
EOF


cd /opt/my_nginx_dockerfile
#2、编译镜像

docker build -t 192.168.1:30012/k8s/my_nginx:v1 .

#3、登陆镜像

docker login -u admin -p Harbor12345 192.168.1:30012

#4、推送至仓库

docker push 192.168.1:30012/k8s/my_nginx:v1

2.Tomcat打包镜像

bash 复制代码
#编写DockerFile

mkdir -p /opt/my_tomcat_dockerfile
cat  >/opt/my_tomcat_dockerfile/Dockerfile << 'EOF'
FROM tomcat:latest
RUN mkdir webapps/ROOT/tomcat -p && echo "My Tomcat v1 version">webapps/ROOT/tomcat/index.html
EOF
cd /opt/my_tomcat_dockerfile

#编译镜像

docker build -t 192.168.1:30012/k8s/my_tomcat:v1 .

#登陆镜像

docker login -u admin -p Harbor12345 192.168.1:30012

#推送至仓库

docker push 192.168.1:30012/k8s/my_tomcat:v1

3.部署nginx

bash 复制代码
cat >nginx-proxy.yml<<'EOF'
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: 192.168.1:30012/k8s/my_nginx:v1
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-web-service
  labels:
    app: nginx-web-service
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - protocol: TCP
    name: http
    port: 80
    targetPort: 80
    nodePort: 30086
EOF


kubectl apply -f nginx-proxy.yml

4.部署Tomcat

bash 复制代码
cat >tomcat-proxy.yml<<'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
 name: tomcat-deployment
 labels:
   app: tomcat
spec:
 replicas: 1
 selector:
   matchLabels:
     app: tomcat
 template:
   metadata:
     labels:
       app: tomcat
   spec:
     containers:
     - name: tomcat
       image: 192.168.1:30012/k8s/my_tomcat:v1
       ports:
       - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
 name: tomcat-web-service
 labels:
   app: tomcat-web-service
spec:
 type: NodePort
 selector:
   app: tomcat
 ports:
   - protocol: TCP
     name: http
     port: 80
     targetPort: 8080
     nodePort: 30087
EOF

kubectl apply -f tomcat-proxy.yml

#测试

curl http://192.168.1:30086/tomcat/

相关推荐
java_cj4 小时前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
難釋懷5 小时前
Nginx反向代理中的容错机制
运维·nginx
bloglin999995 小时前
Nginx高危漏洞CVE-2021-23017及配置样例
运维·nginx
进阶的小名5 小时前
Spring Boot SSE + Nginx 配置:解决 EventSource 不实时返回、连接超时、流式响应被缓冲问题
spring boot·后端·nginx
難釋懷6 小时前
Nginx获取客户端真实IP
服务器·前端·nginx
qq_452396237 小时前
第十三篇:《K8s 安全基础:RBAC、ServiceAccount、Pod Security》
java·安全·kubernetes
qq_谁赞成_谁反对8 小时前
甲方IT的成长之路--nginx实战--2604
服务器·数据库·nginx
睡不醒男孩0308238 小时前
云原生运维实战:高并发架构下的云原生可观测性、韧性降级与自动化干预体系
数据库·kubernetes·高并发·prometheus·devops·sre·缓存调优
qq_452396238 小时前
第十四篇:《K8s 网络模型与 CNI 插件(Calico、Flannel、Cilium)》
网络·kubernetes·php
Hadoop_Liang9 小时前
Kubernetes 应用 HTTPS 安全访问配置实践
https·kubernetes