Nginx-ingress-controller部署应用

https://blog.51cto.com/newfly/2060587

参考:https://cloud.tencent.com/developer/article/1490975

1.下载并执行了mandatory.yaml文件

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

2.下载https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml

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

上面的没有安装成功,故弃之。

参考:https://blog.51cto.com/hequan/2432608(主要参考)

 https://www.cnblogs.com/cnmumian/p/10660207.html

https://blog.csdn.net/aixiaoyang168/article/details/81661459

1、下载mandatory.yaml文件

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

出现了拒绝访问:百度大概是缺少证书一类的吧,

先安装:

ca-certificates
  yum -y install ca-certificates

把命令改成 :

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

于是下载成功。

2、执行命令 替换里面的,镜像default-http的镜像默认是google的镜像地址,你懂得,所以替换成国内镜像地址。

sed -i 's#quay.io/kubernetes-ingress-controller/nginx-ingress-controller#registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller#g' mandatory.yaml 

mandatory.yaml文件内容比较多,在这里就不做展示。主要就是镜像源需要找很久。

3、创建service-nodeport.yaml文件,这里容易出错的地方是pode的端口号,修改service文件,指定一下nodePort,使用80端口和443端口作为nodePort。

一般这个端口号会不在端口号的范围内,也会出错。所以需要自己去修改nodePort的范围:https://blog.csdn.net/fuck487/article/details/102519225。或者将其修改为32080 和32443。

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: NodePort
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
      nodePort: 32080  ## http请求对外映射端口
    - name: https
      port: 443
      targetPort: 443
      protocol: TCP
      nodePort: 32443  #https
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx

4、运行命令,生成一个叫ingress-nginx的namespace,以及一个叫ingress-nginx的service。

kubectl create -f mandatory.yaml

kubectl create -f service-nodeport.yaml

5、检查生成状态(这一步应该是mandatory.yaml 文件中的镜像一直没下载下来导致的。)

 6、部署一个tomcat用于测试ingress转发功能(也就是部署一个tomcat服务)

 apiVersion: v1
kind: Service
metadata:
  name: tomcat
  namespace: default
spec:
  selector:
   app: tomcat
   release: canary
  ports:
  - name: http
    targetPort: 8080
    port: 8080
  - name: ajp
    targetPort: 8009
    port: 8009
 
---
 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat-deploy
  namespace: default
spec:
  replicas: 1
  selector:
   matchLabels:
     app: tomcat
     release: canary
  template:
   metadata:
     labels:
       app: tomcat
       release: canary
   spec:
     containers:
     - name: tomcat
       image: tomcat
       ports:
       - name: http
         containerPort: 8080
7、


posted on 2019-11-28 15:30  毛无语666  阅读(2484)  评论(0编辑  收藏  举报

导航