k8s 部署java应用 基于ingress+jar包

k8 集群ingress的访问模式

先部署一个namespace 命名空间

vim namespace.yaml

复制代码
kind: Namespace
apiVersion: v1
metadata:
  name: ingress-test
  labels:
    env: ingress-test

在部署deployment deployment是pod层一层封装。可以实现多节点部署 资源分配 回滚部署等方式。

部署的时候需要系统上面有名字为 devops-api 的镜像 这个是jar包打成的镜像

vim devopsApi-Deployment.yaml

复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: devops-api
  namespace: ingress-test
  labels:
    app: devops-api
spec:
  replicas: 1
  template:
    metadata:
      name: devops-api
      labels:
        app: devops-api
    spec:
      containers:
        - name: devops-api
          image: devops-api:latest
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8000
      restartPolicy: Always
  selector:
    matchLabels:
      app: devops-api

部署Service层 Service 绑定外部IP 是可以提供外部访问的

IP:端口 的方式可以访问

vim devops-svc.yaml

复制代码
apiVersion: v1
kind: Service
metadata:
  name: devops-svc
  namespace: ingress-test
  labels:
    app: devops-svc
spec:
  selector:
    app: devops-api
  ports:
  - name: http
    port: 8000
    targetPort: 8000
    protocol: TCP
  externalIPs:
  - 192.168.217.129

Ingress

ingress 定义路由规则, 基于http第七层应用层访问 URL的方式访问 比如 ingress 定义一个/demo的规则 则这个规则下必须有对应的服务或接口数据。。没有则报404错误

vim devopsApi-igrs.yaml

复制代码
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: ingress-test
  name: devops-api
spec:
  ingressClassName: nginx
  rules:
    - host: k1.devops.com
      http:
        paths:
          - path: /demo   #修改之后可以重新部署 /api/hello/admin
            pathType: Prefix
            backend:
              service:
                name: devops-api
                port:
                  number: 8000

在普通模式下 http://localhost:8000/demo 假设这个接口 url在后端服务必须有返回数据

很容易在这个地方犯迷糊。。

kubeclt apply -f devopsApi-igrs.yaml

修改配置之后

kubeclt replace -f devopsApi-igrs.yaml

相关推荐
AI的魔盒2 分钟前
基于Java与MAVLink协议的多无人机(Cube飞控)集群控制与调度方案问题
java·开发语言·无人机
北执南念39 分钟前
项目代码生成工具
java
中国lanwp1 小时前
springboot logback 默认加载配置文件顺序
java·spring boot·logback
cherishSpring1 小时前
在windows使用docker打包springboot项目镜像并上传到阿里云
spring boot·docker·容器
LKAI.1 小时前
k8s存储动态供给StorageClass
docker·微服务·云原生·容器·kubernetes
苹果酱05671 小时前
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
java·vue.js·spring boot·mysql·课程设计
Java致死2 小时前
单例设计模式
java·单例模式·设计模式
胡子发芽2 小时前
请详细解释Java中的线程池(ThreadPoolExecutor)的工作原理,并说明如何自定义线程池的拒绝策略
java
沫夕残雪2 小时前
Tomcat的安装与配置
java·tomcat
你可以叫我仔哥呀2 小时前
k8s学习记录(五):Pod亲和性详解
学习·容器·kubernetes