一、下载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. 兼容Android 和 ios JavaScript copy paste

    <!DOCTYPE html> <html> <head> <title>关于我们Frame</title> <meta charse ...

  2. svn 锁的处理

    svn 锁的处理: 问题: 1:当用户在work copy1 中把某个文件或者文件夹锁住后,删除了这个工作区,重新取下来work copy2,再操作该文件的时候就报错说,该文件已经被锁住,必须先解锁, ...

  3. js Ajax 请求返回

    1.后台正常返回值 2.后台异常返回值 一 后台正常返回值 二.后台异常返回 场景1:报错 场景2:登录超时,这种场景,需要考虑

  4. Flink知识点

    1. Flink.Storm.Sparkstreaming对比 Storm只支持流处理任务,数据是一条一条的源源不断地处理,而MapReduce.spark只支持批处理任务,spark-streami ...

  5. mongo中游标

    1.手动循环访问游标 mongo中我们常用的查询方式db.collection.find()方法其实返回的就是游标,只不过我们并未给返回的游标分配变量,我们所看到的的查询数据也就是游标自动迭代得出的( ...

  6. centos7 开放3306端口并可以远程访问

    开启远程访问: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 允许任何ip以roo ...

  7. 将Oracle 12c的某用户数据迁移至OracleXE的用户

    前言:OracleXE全称为oracle database 11g express edition .Oracle Database 11g Express Edition是 Oracle 数据库的免 ...

  8. UINavigationController - BNR

    继续上篇UITableView的编辑操作. 当你初始化一个UINavigationController对象时,它将拥有一个根视图控制器,即UIViewController.根视图控制器一直存在于sta ...

  9. HBase篇(2)-数据模型与操作

    HBase其实就是一个数据库,无非就是存储和增删改查,那我们先从数据模型说起把 这里有一张表,是用关系型数据库的思维画出来的表,这样比较易于理解: 概念 Table(表格) 没啥说的,和关系型数据库一 ...

  10. Java面试之高并发系统

    在开发高并发系统时有三把利器用来保护系统:缓存.降级和限流.