Kubernetes通过ingress暴露服务访问

2025-11-06 02:31:55

1、先在k8s集群上部署一个tomcat应用

1.我先写了一个tomcat的tomcat-deployment.yml资源文件

内容如图

apiVersion: apps/v1

kind: Deployment

metadata:

  name: tomcat

  labels:

    app: tomcat

spec:

  replicas: 1

  selector:

    matchLabels:

      app: tomcat

  template:

    metadata:

      labels:

        app: tomcat

    spec:

      containers:

      - name: tomcat

        image: tomcat:latest

        ports:

        - containerPort: 8080

Kubernetes通过ingress暴露服务访问

2、2.通过tomcat-deployment.yml部署一个tomcat应用

输入kubectl create -f tomcat-deployment.yml --namespace=default创建pod

Kubernetes通过ingress暴露服务访问

3、创建service

1.创建tomcat-service.yml 文件

apiVersion: v1

kind: Service

metadata:

  name: tomcat

  namespace: default

  labels:

    app: tomcat

spec:

  ports:

  - name: http

    port: 8080

    targetPort: 8080

    protocol: TCP

  selector:

    app: tomcat

Kubernetes通过ingress暴露服务访问

4、2.输入kubectl create -f tomcat-service.yml 创建service

Kubernetes通过ingress暴露服务访问

5、测试service

输入curl 10.233.35.250:8080

语法: curl service 的ip:端口

Kubernetes通过ingress暴露服务访问

6、通过ingrass暴露服务至外网

1.创建tomcat-ingress.yml 资源文件

文件内容如下:

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

  labels:

    app: tomcat

  name: tomcat

  namespace: default

  annotations:

    nginx.ingress.kubernetes.io/rewrite-target: /

spec:

  rules:

  - host: tomcat.k8s-dev.com

    http:

      paths:

      - path: /

        backend:

          serviceName: tomcat

          servicePort: 8080

Kubernetes通过ingress暴露服务访问

Kubernetes通过ingress暴露服务访问

7、2.创建ingress

输入kubectl create -f tomcat-ingress.yml 回车

输入kubectl get ing -o wide  回车

Kubernetes通过ingress暴露服务访问

8、在外部电脑访问tomcat服务

浏览器输入服务地址访问,如图

发现无法访问,这需要在这台电脑上配置hosts

Kubernetes通过ingress暴露服务访问

9、在要访问服务的机器上配置hosts

以windows为例

找到hosts文件

Kubernetes通过ingress暴露服务访问

10、编辑hosts文件加入如下内容

k8s任意一台master的ip    tomcat的服务域名

注:通过输入kubectl get node -o wide 查看k8s master的ip

Kubernetes通过ingress暴露服务访问

Kubernetes通过ingress暴露服务访问

11、配置好后保存,再次访问tomcat服务的域名

ok,成功

Kubernetes通过ingress暴露服务访问

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢