Ingress-nginx
安装
# 获取nginx-ingress镜像 docker pull siriuszg/nginx-ingress-controller:0.26.1 # 重新打tag docker tag siriuszg/nginx-ingress-controller:0.26.1 10.0.0.70:5000/nginx-ingress-controller:0.26.1 # 推送到本地仓库 docker push 10.0.0.70:5000/nginx-ingress-controller:0.26.1
使用步骤
1. 创建控制器
# 获取控制器配置文件,访问https://github.com/kubernetes/ingress-nginx/blob/master/deploy/static/mandatory.yaml# 拷贝内容到 mandatory.yamlvi mandatory.yaml#----image: 10.0.0.70:5000/nginx-ingress-controller:0.26.1#----# 创建控制器kubectl apply -f mandatory.yaml# 查看是否创建kubectl get pods -n ingress-nginx
2. 创建pod
# nginx服务部署文件vi deploy-demo-nginx.ymlapiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deploy-demospec: replicas: 3 selector: matchLabels: app: deploy-demo release: canary template: metadata: labels: app: deploy-demo release: canary spec: containers: - name: deploy-demo image: nginx:1.13-alpine ports: - name: http containerPort: 80# 部署pod资源kubectl apply -f deploy-demo-nginx.yml
3. 创建pod的service
# pod的service文件
vi svc-deploy-demo.yml
apiVersion: v1
kind: Service
metadata:
name: svc-nginx-deploy-demo
namespace: default
spec:
selector:
app: deploy-demo
release: canary
ports:
- port: 80
targetPort: 80
protocol: TCP
# 部署服务
kubectl create -f svc-deploy-demo.yml
4. 创建ingress资源
# service的ingress资源
vi ingress-nginx.yml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-nginx
namespace: default
spec:
rules:
- host: ohmy.k8s
http:
paths:
- path: /
backend:
serviceName: svc-nginx-deploy-demo
servicePort: 80
# 创建ingress资源
kubectl create -f ingress-nginx.yml
5. 创建ingress的service
# nodePort文件
vi service-nodeport.yml
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
nodePort: 30080
protocol: TCP
- name: https
port: 443
targetPort: 443
protocol: TCP
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
---
# 创建service
kubectl create -f service-nodeport.yml
测试访问
将主机IP与域名绑定,访问
Ingress-tomcat