8. kubernetes资源——ingress

一、ingress介绍

1、作用

ingress作为插件存在,需要单独安装
ingress作用:发布服务
ingress以主机名的方式对外发布服务, 一个服务对应一个主机名, 类似于7层调度

2、实现方式

nginx_ingress
haproxy_ingress

3、核心组件

ingress_nginx_controller控制器

与kube-apiserver进行交互,获取集群内部的服务信息
生成ingress规则发布服务 、规则维护

二、部署ingress

1、下载ingress_1.9.6.yaml文件

将ingress controller的网络改为host
删除所有镜像后的sha值

2、事先导入镜像

[root@k8s-master ~]# ctr -n k8s.io image import k8s.dockerproxy.com_ingress_nginx_controller_v1.9.6.tar 
[root@k8s-master ~]# ctr -n k8s.io image import k8s.dockerproxy.com_ingress_nginx_kube_webhook_certgen_v20231226_1a7112e06.tar 

3、部署ingress

[root@k8s-master ~]# kubectl create -f ingress_1.9.6.yaml 
[root@k8s-master ~]# kubectl get pod -n ingress-nginx -o wide 
NAME                                        READY   STATUS      RESTARTS   AGE    IP               NODE                   NOMINATED NODE   READINESS GATES
ingress-nginx-admission-create-dpd4b        0/1     Completed   0          100s   10.88.242.132    k8s-node02.linux.com   <none>           <none>
ingress-nginx-admission-patch-9mskg         0/1     Completed   1          100s   10.88.242.131    k8s-node02.linux.com   <none>           <none>
ingress-nginx-controller-584949497f-22vfp   1/1     Running     0          100s   192.168.140.12   k8s-node02.linux.com   <none>           <none>

三、通过ingress发布k8s中的服务

1、创建服务

apiVersion: apps/v1
kind: Deployment
metadata:
    name: test3-tomcat
spec:
    replicas: 1
    selector:
        matchLabels:
            app: tomcat
    template:
        metadata:
            labels:
                app: tomcat
        spec:
            containers:
            - name: test3-tomcat
              image: tomcat:latest
              imagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:
    name: test3-tomcat
spec:
    ports:
    - port: 8080
    selector:
        app: tomcat
[root@k8s-master svcTest]# kubectl get pod,svc
NAME                                READY   STATUS    RESTARTS   AGE
pod/test3-tomcat-78cb46587d-rkj8c   1/1     Running   0          6s

NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/kubernetes     ClusterIP   10.96.0.1       <none>        443/TCP    123d
service/test3-tomcat   ClusterIP   10.96.104.153   <none>        8080/TCP   6s

2、创建ingress规则发布服务

apiVersion: networking.k8s.io/v1
kind: Ingress  
metadata:
  name: test3-tomcat-ingress
spec:
  ingressClassName: nginx
  rules:
  - host: java.linux.com
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: test3-tomcat
            port:
              number: 8080
[root@k8s-master svcTest]# kubectl create -f test3-tomcat-ingress.yaml
ingress.networking.k8s.io/test3-tomcat-ingress created

[root@k8s-master svcTest]# kubectl get ingress
NAME                   CLASS   HOSTS            ADDRESS   PORTS   AGE
test3-tomcat-ingress   nginx   java.linux.com             80      6s

3、测试访问

将主机名解析到ingress controller地址

[root@k8s-master svcTest]# kubectl cp project.war test3-tomcat-78cb46587d-rkj8c:/usr/local/tomcat/webapps/project.war

在这里插入图片描述

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值