Day 27 阿里云上运行Kubernetes 3 - ACK

在前两篇简单操作了阿里上面的ACK服务,今天要分享的是使用ingress,怎麽用一个IP去分享多个服务出去,让使用更加方便

Ingress

使用Service和Ingress都将Kubernetes集群内的多个服务公开给外部客户端。其关键在於IP地址,如果使用 Service,每个Kubernetes服务都需要一个独立的IP地址,但在使用Ingress时,只要用一个公共IP地址就能将Kubernetes集群内的多个服务公开给外部客户端

https://ithelp.ithome.com.tw/upload/images/20211009/20140353W4xNff6SUj.png

实作2-ACK Ingress

一样要先创建集群,参考(DAY25)的操作范例,唯一不一样的地方要在第一页额外去勾选EIP连接点
https://ithelp.ithome.com.tw/upload/images/20211009/20140353GsNXf2qeq9.png

  1. 我们配置两个ReplicaSet,我们先建立nginx的yaml
vim nginx.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.12.2
  1. 建立tomcat的yaml
vim tomcat.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: tomcat
spec:
  replicas: 2
  selector:
    matchLabels:
      app: tomcat
  template:
    metadata:
      labels:
        app: tomcat
    spec:
      containers:
      - name: tomcat
        image: tomcat:8.5
  1. 创建ReplicaSet
kubectl create -f nginx.yaml
kubectl create -f tomcat.yaml

https://ithelp.ithome.com.tw/upload/images/20211009/20140353HclOFqEUzq.png
4. 创建nginx的yaml

vim nginx-serivce.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  ports:
  - port: 81
    targetPort: 80
  selector:
    app: nginx
  1. 创建tomcat的yaml
vim tomcat-serivce.yaml
apiVersion: v1
kind: Service
metadata:
  name: tomcat-service
spec:
  ports:
  - port: 82
    targetPort: 8080
  selector:
    app: tomcat
  1. 建立service
kubectl create -f nginx-serivce.yaml
kubectl create -f tomcat-serivce.yaml

https://ithelp.ithome.com.tw/upload/images/20211009/2014035316sLfQ14kE.png
7. 检查一下pod是否正常

kubectl get pods

https://ithelp.ithome.com.tw/upload/images/20211009/20140353ap3pQCi8Q9.png
8. 再来我们要建立Ingress,根据域名来访问这些服务

vim ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
spec:
  rules:
  - host: nginx.a.com
    http:
      paths:
      - path: /
        backend:
          serviceName: nginx-service
          servicePort: 81
  - host: tomcat.b.com
    http:
      paths:
      - path: /
        backend:
          serviceName: tomcat-service
          servicePort: 82
  1. 创建ingress
kubectl create -f ingress.yaml

https://ithelp.ithome.com.tw/upload/images/20211009/20140353Yo2a8QT4Fc.png

  1. 查看一下ingress,我们可以看到刚刚写的域名已经上去
kubectl get ingress

https://ithelp.ithome.com.tw/upload/images/20211009/20140353v2MZuG35lG.png

  1. 打开服务器的hosts文件,新增刚刚我们在ingress查看的域名跟IP
vim /etc/hosts

https://ithelp.ithome.com.tw/upload/images/20211009/20140353OL9mbNjv5q.png

  1. 输入curl查看一下即可
curl nginx.a.com
curl tomcat.b.com

https://ithelp.ithome.com.tw/upload/images/20211009/201403531K8fSHkZe3.png
https://ithelp.ithome.com.tw/upload/images/20211009/201403533v3ne27R0q.png

这样就完成了透过同一IP去输出两个网站,後面如果要删除资源,可以依照(DAY26)後面的分享去删除,可以依照这简单lab再去做变化,就可以得到更深的了解


<<:  Day24 NiFi 延伸应用 - Slack & Email

>>:  Day-25: Ruby 世界好多等於,系虾米毁?

Python 演算法 Day 15 - Imbalanced Data

Chap.II Machine Learning 机器学习 https://yourfreetemp...

拥抱「资料结构」的「演算法」(29) - 戴克斯特拉演算法求最短路径

前言 对图形的搜寻有了基本观念之後,接下来要在图形的边加入权重的部分,这样就能找到最短路径 生活常识...

新手发问:LIFF如何制作一个Flex Message发送讯息小工具?

因Flex Message目前无法直接发送讯息至5000人社群 想请教各位大大 如何使用LIFF制作...

AI ninja project [day 24] 决策树森林 --排名资料

随机决策树为随机生成许多决策树, 利用取袋法来取出选中的决策树, 而每棵树的都具有执行结果, 每棵树...

Day 26 - 新鲜人带新鲜人篇

早上七点半的闹钟,大概是进入职场刚开始比较不习惯的事情(这应该是要报到的前端新鲜人的心情),今天的内...