k8s ingress

ingress组成

  1. ingress controller   
    将新加入的Ingress转化成Nginx的配置文件并使之生效。
  2. ingress service
    对外暴露ingress controller管理的nginx服务,即把ingress controller
    的pod的80端口和443端口对外暴露,记录这个service的访问入口,即为ingress的访问入口地址。
    Tip:如果是公有云环境中,就需要创建LoadBalancer类型的serviece

ingress工作原理

  1. ingress controller通过和kubernetes api交互,动态的去感知集群中ingress规则变化,
  2. 然后读取它,按照自定义的规则,规则就是写明了哪个域名对应哪个service,生成一段nginx配置,
  3. 再写到nginx-ingress-control的pod里,这个Ingress controller的pod里运行着一个Nginx服务,控制器会把生成的nginx配置写入/etc/nginx.conf文件中,
  4. 然后reload一下使配置生效。以此达到域名分配置和动态更新的问题。

ingress实践

  1. 安装 ingress controller
  2. 安装 ingress service
# EXTERNAL-IP的地址即为ingress的访问入口地址
k get svc/nginx-ingress-lb -n kube-system
NAME               TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
nginx-ingress-lb   LoadBalancer   192.168.157.54   172.16.38.132   80:31985/TCP,443:31352/TCP   8d
  1. 安装 ingress
# nginx-deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: svc-test
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80

# nginx-service
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  namespace: svc-test
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 8087
    targetPort: 80
    nodePort: 31557
  type: LoadBalancer
  
# nginx-ingress  
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress
  namespace: svc-test
spec:
  rules:
  - host: demo.localdev.me 
    http:
      paths:
      - path: /
        backend:
          serviceName: nginx-service
          servicePort: 8087
# ADDRESS会自动绑定ingress service的EXTERNAL-IP
kargo get ing -n svc-test       
NAME            CLASS    HOSTS              ADDRESS         PORTS   AGE
nginx-ingress   <none>   demo.localdev.me   172.16.38.132   80      24m

配置好本地host后即可通过域名访问,配置如下:

demo.localdev.me   172.16.38.132 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值