Kubernetes学习(七)

 Ingress

一、资料信息

 

 

 

 

二、部署 http访问Ingress-Nginx

https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.28.0/deploy/static/provider/baremetal/service-nodeport.yaml
https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
本地虚拟机下载不了,我是用自己阿里云的机器下载在复制过来的。

kubectl apply -f mandatory.yaml

其中镜像:quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0,也在在阿里云机器下载好的

kubectl apply -f service-nodeport.yaml

Ingress HTTP 代理访问

deployment、Service、Ingress Yaml 文件

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

name: nginx-dm

spec:

  replicas: 2

template:

 metadata:

labels:

 name: nginx

 spec:

 containers:

 - name: nginx

 image: wangyanglinux/myapp:v1

 imagePullPolicy: IfNotPresent

 ports:

 - containerPort: 80

---

apiVersion: v1

kind: Service

metadata:

 name: nginx-svc

spec:

 ports:

 - port: 80

 targetPort: 80

 protocol: TCP

 selector:

 name: nginx

 

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

   name: nginx-test

spec:

 rules:

- host: www1.atguigu.com

 http:

paths:

 - path: /

backend:

 serviceName: nginx-svc

 servicePort: 80

过程如下

1.执行
mandatory.yaml
2.执行
service-nodeport.yaml
3.执行deployment
deployment.yaml
4.执行ingress
ingress.http.yaml

注意yaml文件的格式问题

部署虚拟主机:

在上面基础上添加一个deployment与ingress

三、部署 https访问Ingress-Nginx

保留http访问部署的 mandatory与service-nodeport

新建deployment3.yaml与https-ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: https
spec:
tls:
- hosts:
- www3.atguigu.com
secretName: tls-secret
rules:
- host: www3.atguigu.com
http:
paths:
- path: /
backend:
serviceName: svc-3
servicePort: 80

先创建证书,以及 cert 存储方式

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/O=nginxsvc"

kubectl create secret tls tls-secret --key tls.key --cert tls.crt

deployment3.yaml

https-ingress.yaml

添加域名解析 加https即可访问

 

posted @ 2020-02-18 19:36  爱小冉的小江  阅读(244)  评论(0)    收藏  举报