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、