[kubernetes]5-5/6 部署ingress-nginx

 

5-5 部署ingress-nginx(上)

域名访问方案 ingress

 

ingress是一个管理外部访问到集群内部服务的api对象,例如http。可以提供负载均衡 ssl 基于名字的虚拟主机

 

Ingress 是什么?

通常,服务 和 Pod 具有仅能在集群网络内路由的 IP 地址。在边缘路由器结束的所有流量都被丢弃或转发到别处。从概念上讲,这可能看起来像:

internet

|

------------

[ Services ]

 

 

Ingress 是允许连接到集群 Service 的规则集合。

 

internet

|

[ Ingress ]

--|-----|--

[ Services ]

 

 

 

 

 

 

 

 

 

5-6 部署ingress-nginx(下)

 

 

 

 

# 创建ingress-nginx文件夹

mkdir /opt/kubernetes/ingress-nginx

cd /opt/kubernetes/ingress-nginx

# 下载yaml文件 并且1.14需要替换kubernetes.io/os 为 beta.kubernetes.io/os 新版本不一样了

 

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

上面原视频的下载好像现在不行了 要不就是镜像跑不起来

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.19.0/deploy/mandatory.yaml

 

[kubernetes]5-5/6 部署ingress-nginx

 

 

docker pull registry.cn-hangzhou.aliyuncs.com/liuyi01/defaultbackend-amd64:1.4

docker tag registry.cn-hangzhou.aliyuncs.com/liuyi01/defaultbackend-amd64:1.4 k8s.gcr.io/defaultbackend-amd64:1.4

# 创建ingress-nginx

kubectl apply -f mandatory.yaml

# 查看ingress-nginx启动状态

kubectl get all -n ingress-nginx

[kubernetes]5-5/6 部署ingress-nginx

 

[kubernetes]5-5/6 部署ingress-nginx

1.15.3版本

[kubernetes]5-5/6 部署ingress-nginx

 

查看用了什么镜像

grep image mandatory.yaml

 

hostport 比桥接模式 效率高 并且没有网络转发。nodeport会有网络转发,因为不知道在哪个节点,会多一次转发。

 

关闭一台harbor的80端口 用于nginx

 

# 给节点打标签

kubectl label node $node-name app=ingress

[kubernetes]5-5/6 部署ingress-nginx

添加

      hostNetwork: true

      nodeSelector:

        app: ingress

 

[kubernetes]5-5/6 部署ingress-nginx

# 应用

kubectl  apply -f mandatory.yaml 

[kubernetes]5-5/6 部署ingress-nginx

 

查看服务 以及node2上的端口情况

[kubernetes]5-5/6 部署ingress-nginx

 

[kubernetes]5-5/6 部署ingress-nginx

 

测试

kubectl  create -f ingress-demo.yaml

[kubernetes]5-5/6 部署ingress-nginx

 

kubectl get pod -o wide

[kubernetes]5-5/6 部署ingress-nginx

 

 

修改windows主机host

[kubernetes]5-5/6 部署ingress-nginx

 

分别访问http://tomcat.mooc.com/http://api.mooc.com/

如果pod还没有ready 还处于ContainerCreating状态 会显示503

 

[kubernetes]5-5/6 部署ingress-nginx

 

[kubernetes]5-5/6 部署ingress-nginx