一、下载yaml文件
https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
# 国内需要修改镜像 #修改amndatory.yaml文件(211行)使用宿主机网络:hostNetwork: true
serviceAccountName: nginx-ingress-serviceaccount
hostNetwork: true #添加这行
containers:
二、导入yaml文件
kubectl apply -f mandatory.yaml #查看
[root@k8s-m yaml]# kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
nginx-ingress-controller-766c77b7d4-nn4c7 1/1 Running 0 49s 三、# 创建一个基于service和Deployment [root@k8s-m yaml]# cat ingress-deploy-demo.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
selector: #标签选择
name: nginx
ports:
- port: 80 #服务器端口
name: http #名称
targetPort: 80 #容器端口
protocol: TCP #协议,默认TCP ---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx-deploy
spec:
replicas: 3
selector:
matchLabels:
name: nginx
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx:alpine #镜像
ports:
- name: http
containerPort: 80 #容器端口 #导入yaml文件
[root@k8s-m yaml]# kubectl apply -f ingress-deploy-demo.yaml
service/nginx-svc unchanged
deployment.apps/my-nginx-deploy created #查看
[root@k8s-m yaml]# kubectl get pods
NAME READY STATUS RESTARTS AGE
my-nginx-deploy-799879696c-7rlhl 1/1 Running 0 41s
my-nginx-deploy-799879696c-99v5g 1/1 Running 0 41s
my-nginx-deploy-799879696c-ljqjd 1/1 Running 0 41s
[root@k8s-m yaml]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 44m
nginx-svc ClusterIP 10.96.182.50 <none> 80/TCP 3m43s # 创建一个 基于 my-nginx-deploy的 ingress
[root@k8s-m yaml]# cat nginx-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-nginx
spec:
rules:
- host: haha.zhang.com
http:
paths:
- backend:
serviceName: nginx-svc
servicePort: 80 #查看
[root@k8s-m yaml]# kubectl get ingress
NAME HOSTS ADDRESS PORTS AGE
ingress-nginx haha.zhang.com 80 21s
#测试
[root@k8s-m yaml]# curl haha.zhang.com -I
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 20 Dec 2018 07:01:18 GMT
Content-Type: text/html
Connection: keep-alive
Keep-Alive: timeout=20
X-DIS-Request-ID: e21475c0d2fa20399819dbb15f21304a
P3P: CP="NON DSP COR ADMa OUR IND UNI COM NAV INT"
Cache-Control: no-cache

  

HTTPS

[root@k8s-m yaml]# cat ssl-www.yaml
apiVersion: v1
kind: Service
metadata:
name: ssl-www
namespace: default
spec:
selector:
app: myhttps
ports:
- name: http
targetPort: 80
port: 80
- name: https
targetPort: 443
port: 443
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deploy
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: myhttps
template:
metadata:
labels:
app: myhttps
spec:
containers:
- name: myhttps
image: nginx:alpine
ports:
- name: http
containerPort: 80
- name: https
containerPort: 443
#导入
kubectl apply -f ssl-www.yaml
二、创建ssl的证书
# 创建一个基于自身域名的证书
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout hahassl.zhang.me-key.key -out hahassl.zhang.me.pem -subj "/CN=hahassl.zhang.me" # 导入 域名的证书到secret 中
kubectl create secret tls hahassl-secret --cert hahassl.zhang.me.pem --key hahassl.zhang.me-key.key
#查看
[root@k8s-m x2]# kubectl get secret -n kube-system|grep haha
hahassl-secret kubernetes.io/tls 2 42s
#配置https的ingress
[root@k8s-m yaml]# cat https-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: https-www
spec:
tls:
- hosts:
- hahassl.zhang.me
secretName: hahassl-secret
rules:
- host: hahassl.zhang.me
http:
paths:
- path: /
backend:
serviceName: ssl-www
servicePort: 443
backend:
serviceName: ssl-www
servicePort: 80
#导入
kubectl apply -f https-ingress.yaml #配置hosts解析(解析为宿主机的公网ip) #访问
[root@k8s-m yaml]# curl -k -I https://hahassl.zhang.me
HTTP/1.1 200 OK
Server: nginx/1.15.6
Date: Sat, 29 Dec 2018 05:48:00 GMT
Content-Type: text/html
Content-Length: 612
Connection: keep-alive
Vary: Accept-Encoding
Last-Modified: Wed, 26 Dec 2018 23:21:49 GMT
ETag: "5c240d0d-264"
Accept-Ranges: bytes
Strict-Transport-Security: max-age=15724800; includeSubDomains

#浏览器访问

部署ingress及使用的更多相关文章

  1. 【转帖】kubernetes 部署ingress

    kubernetes 部署ingress https://www.cnblogs.com/dingbin/p/9754993.html 明天尝试一下 之前的文档里面一直没有提 需要改host文件 我有 ...

  2. kubernetes 部署ingress

    kubernetes Ingess 是有2部分组成,Ingress Controller 和Ingress服务组成,常用的Ingress Controller 是ingress-nginx,工作的原理 ...

  3. 没有部署ingress pod的woker节点telnet slb的80 443端口不通

    一,问题描述 没有部署ingress pod的woker节点telnet slb的80 443端口不通 二,解决办法 方法一:改用svc地址调用 方法二:让每台woker节点都部署ingress po ...

  4. kubernetes 1.14安装部署ingress

    简单介绍: Ingress是Kubernetes API的标准资源类型之一,它其实就是一组基于DNS名称或URL路径把请求转发至指定的Service资源的规则,用来将集群外部的请求流量转发至集群内部. ...

  5. k8s部署高可用Ingress

    部署高可用Ingress 官网地址https://kubernetes.github.io/ingress-nginx/deploy/ 获取ingress的编排文件 wget https://raw. ...

  6. k8s Ingress 理解和部署

    目录 前言 Ingress 与 ingress-controller Ingress 部署 1.部署 ingress-controller 2.部署测试 web 服务 3.部署 Ingress 4.检 ...

  7. 入门级实操教程!从概念到部署,全方位了解K8S Ingress!

    Kubernetes Ingress用于添加规则,以将流量从外部路由到Kubernetes集群的服务中.在本文中你将了解ingress 的概念,以及用于路由外部流量到Kubernetes deploy ...

  8. Kubernetes Ingress 部署

    Kubernetes Ingress 部署 Pod与Ingress的关系• 通过service相关联• 通过Ingress Controller实现Pod的负载均衡- 支持TCP/UDP 4层和HTT ...

  9. Kubernetes集群部署关键知识总结

    Kubernetes集群部署需要安装的组件东西很多,过程复杂,对服务器环境要求很苛刻,最好是能连外网的环境下安装,有些组件还需要连google服务器下载,这一点一般很难满足,因此最好是能提前下载好准备 ...

随机推荐

  1. UVA12265-Selling Land(单调栈)

    Problem UVA12265-Selling Land Accept: 137  Submit: 782Time Limit: 3000 mSec Problem Description Inpu ...

  2. P1145 约瑟夫 W(模拟)

    暴力+模拟 #include<iostream> #include<cstring> using namespace std; int ans, k, k2; ]; bool ...

  3. 微信硬件平台(八) 3-0ESP8266向微信服务器请求设备绑定的用户

    1调试助手 请求URL: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=自己微信ID&a ...

  4. Linux常用命令全称

    Linux常用命令全称 pwd:print work directory   打印当前目录 显示出当前工作目录的绝对路径 ps: process status(进程状态,任务管理器)    常用参数: ...

  5. face recognition[Euclidean-distance-based loss][FaceNet]

    本文来自<FaceNet: A Unified Embedding for Face Recognition and Clustering>.时间线为2015年6月.是谷歌的作品. 0 引 ...

  6. UVA12253 简单加密法 Simple Encryption

    这题到现在还是只有我一个人过?太冷门了吧,毕竟你谷上很少有人会去做往年ACM比赛的题 题面意思很简单,每次给出\(K_1\),让你求一个\(K_2\)满足\(K_1^{K_2}\equiv K_2(\ ...

  7. 深入理解Java中的反射机制

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. ...

  8. 自己制作Chrome便携版实现多版本共存

    本文只针对Windows下的Chrome浏览器的使用. 有时候我们需要使用老版本Chrome,或者仅仅体验一下最新版. 上古时代有IETester用来测试多个IE版本,和本机的IE不冲突. Chrom ...

  9. Node+GitLab实现小程序CI系统

    为什么要实现自动部署 小程序开发迭代里,有以下几个个头痛的问题, 如何准确并快速的的把小程序上传去后台,并让测试人员进行测试? 测试同事找开发要二维码,效率较低 本地生成的二维码会出现携带本地代码.未 ...

  10. 蛙蛙推荐: TensorFlow Hello World 之平面拟合

    tensorflow 已经发布了 2.0 alpha 版本,所以是时候学一波 tf 了.官方教程有个平面拟合的类似Hello World的例子,但没什么解释,新手理解起来比较困难. 所以本文对这个案例 ...