1. 一、下载yaml文件
  2. https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
  3. # 国内需要修改镜像
  4.  
  5.  
  6. #修改amndatory.yaml文件(211行)使用宿主机网络:hostNetwork: true
  7. serviceAccountName: nginx-ingress-serviceaccount
  8. hostNetwork: true #添加这行
  9. containers:
  1. 二、导入yaml文件
  2. kubectl apply -f mandatory.yaml
  3.  
  4. #查看
  5. [root@k8s-m yaml]# kubectl get pods -n ingress-nginx
  6. NAME READY STATUS RESTARTS AGE
  7. nginx-ingress-controller-766c77b7d4-nn4c7 1/1 Running 0 49s
  8.  
  9. 三、# 创建一个基于serviceDeployment
  10.  
  11. [root@k8s-m yaml]# cat ingress-deploy-demo.yaml
  12. apiVersion: v1
  13. kind: Service
  14. metadata:
  15. name: nginx-svc
  16. spec:
  17. selector: #标签选择
  18. name: nginx
  19. ports:
  20. - port: 80 #服务器端口
  21. name: http #名称
  22. targetPort: 80 #容器端口
  23. protocol: TCP #协议,默认TCP
  24.  
  25. ---
  26. apiVersion: apps/v1
  27. kind: Deployment
  28. metadata:
  29. name: my-nginx-deploy
  30. spec:
  31. replicas: 3
  32. selector:
  33. matchLabels:
  34. name: nginx
  35. template:
  36. metadata:
  37. labels:
  38. name: nginx
  39. spec:
  40. containers:
  41. - name: nginx
  42. image: nginx:alpine #镜像
  43. ports:
  44. - name: http
  45. containerPort: 80 #容器端口
  46.  
  47. #导入yaml文件
  48. [root@k8s-m yaml]# kubectl apply -f ingress-deploy-demo.yaml
  49. service/nginx-svc unchanged
  50. deployment.apps/my-nginx-deploy created
  51.  
  52. #查看
  53. [root@k8s-m yaml]# kubectl get pods
  54. NAME READY STATUS RESTARTS AGE
  55. my-nginx-deploy-799879696c-7rlhl 1/1 Running 0 41s
  56. my-nginx-deploy-799879696c-99v5g 1/1 Running 0 41s
  57. my-nginx-deploy-799879696c-ljqjd 1/1 Running 0 41s
  58. [root@k8s-m yaml]# kubectl get svc
  59. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  60. kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 44m
  61. nginx-svc ClusterIP 10.96.182.50 <none> 80/TCP 3m43s
  62.  
  63. # 创建一个 基于 my-nginx-deploy的 ingress
  64. [root@k8s-m yaml]# cat nginx-ingress.yaml
  65. apiVersion: extensions/v1beta1
  66. kind: Ingress
  67. metadata:
  68. name: ingress-nginx
  69. spec:
  70. rules:
  71. - host: haha.zhang.com
  72. http:
  73. paths:
  74. - backend:
  75. serviceName: nginx-svc
  76. servicePort: 80
  77.  
  78. #查看
  79. [root@k8s-m yaml]# kubectl get ingress
  80. NAME HOSTS ADDRESS PORTS AGE
  81. ingress-nginx haha.zhang.com 80 21s
  82. #测试
  83. [root@k8s-m yaml]# curl haha.zhang.com -I
  84. HTTP/1.1 200 OK
  85. Server: nginx
  86. Date: Thu, 20 Dec 2018 07:01:18 GMT
  87. Content-Type: text/html
  88. Connection: keep-alive
  89. Keep-Alive: timeout=20
  90. X-DIS-Request-ID: e21475c0d2fa20399819dbb15f21304a
  91. P3P: CP="NON DSP COR ADMa OUR IND UNI COM NAV INT"
  92. Cache-Control: no-cache

  

HTTPS

  1. [root@k8s-m yaml]# cat ssl-www.yaml
  2. apiVersion: v1
  3. kind: Service
  4. metadata:
  5. name: ssl-www
  6. namespace: default
  7. spec:
  8. selector:
  9. app: myhttps
  10. ports:
  11. - name: http
  12. targetPort: 80
  13. port: 80
  14. - name: https
  15. targetPort: 443
  16. port: 443
  17. ---
  18. apiVersion: apps/v1
  19. kind: Deployment
  20. metadata:
  21. name: myapp-deploy
  22. namespace: default
  23. spec:
  24. replicas: 3
  25. selector:
  26. matchLabels:
  27. app: myhttps
  28. template:
  29. metadata:
  30. labels:
  31. app: myhttps
  32. spec:
  33. containers:
  34. - name: myhttps
  35. image: nginx:alpine
  36. ports:
  37. - name: http
  38. containerPort: 80
  39. - name: https
  40. containerPort: 443
  41. #导入
  42. kubectl apply -f ssl-www.yaml
  43. 二、创建ssl的证书
  44. # 创建一个基于自身域名的证书
  45. 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"
  46.  
  47. # 导入 域名的证书到secret 中
  48. kubectl create secret tls hahassl-secret --cert hahassl.zhang.me.pem --key hahassl.zhang.me-key.key
  49. #查看
  50. [root@k8s-m x2]# kubectl get secret -n kube-system|grep haha
  51. hahassl-secret kubernetes.io/tls 2 42s
  52. #配置https的ingress
  53. [root@k8s-m yaml]# cat https-ingress.yaml
  54. apiVersion: extensions/v1beta1
  55. kind: Ingress
  56. metadata:
  57. name: https-www
  58. spec:
  59. tls:
  60. - hosts:
  61. - hahassl.zhang.me
  62. secretName: hahassl-secret
  63. rules:
  64. - host: hahassl.zhang.me
  65. http:
  66. paths:
  67. - path: /
  68. backend:
  69. serviceName: ssl-www
  70. servicePort: 443
  71. backend:
  72. serviceName: ssl-www
  73. servicePort: 80
  74. #导入
  75. kubectl apply -f https-ingress.yaml
  76.  
  77. #配置hosts解析(解析为宿主机的公网ip)
  78.  
  79. #访问
  80. [root@k8s-m yaml]# curl -k -I https://hahassl.zhang.me
  81. HTTP/1.1 200 OK
    Server: nginx/1.15.6
  82. Date: Sat, 29 Dec 2018 05:48:00 GMT
  83. Content-Type: text/html
  84. Content-Length: 612
  85. Connection: keep-alive
  86. Vary: Accept-Encoding
  87. Last-Modified: Wed, 26 Dec 2018 23:21:49 GMT
  88. ETag: "5c240d0d-264"
  89. Accept-Ranges: bytes
  90. 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. [Python] 练习代码

    # from random import randrange # num = int(input('摇几次骰子: ')) # sides=int(input('筛子有几个面: ')) # sum=0 ...

  2. 自然语言处理之LDA主题模型

    1.LDA概述 在机器学习领域,LDA是两个常用模型的简称:线性判别分析(Linear Discriminant Analysis)和 隐含狄利克雷分布(Latent Dirichlet Alloca ...

  3. TCP三次握手与四次握手

    背景描述 通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信.但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在 ...

  4. (5)HomeAssistant 增加设备

    将设备添加到Home Assistant https://www.home-assistant.io/docs/configuration/devices/ configuration.yaml文件 ...

  5. ROS 创建服务和请求

    教程 维基 http://wiki.ros.org/cn/ROS/Tutorials 快速过程 创建包 $ cd ~/catkin_ws $ mkdir ~/catkin_ws/src $ cd ~/ ...

  6. Flask路由报错:raise FormDataRoutingRedirect(request)

    raise FormDataRoutingRedirect(request)FormDataRoutingRedirect: A request was sent to this URL (http: ...

  7. django如何语法高亮模块

    首先,django的语法高亮必须配合markdown模块使用. 注意事项: 确保在渲染文本时添加了 markdown.extensions.codehilite 拓展 确保安装了 Pygments. ...

  8. WPF Binding学习(四) 绑定各种数据源

    转自:http://blog.csdn.net/lisenyang/article/details/18312199 1.集合作为数据源 首先我们先创建一个模型类 public class Stude ...

  9. Git分支管理规范

    关于Git的一些分支管理规范... 一.分支与角色说明 Git 分支类型 master 分支(主分支) 稳定版本 develop 分支(开发分支) 最新版本 release 分支(发布分支) 发布新版 ...

  10. handsontable-chosen-editor

    https://github.com/mydea/handsontable-chosen-editor handsontable-chosen-editor是handsontable column的扩 ...