部署ingress及使用
- 一、下载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及使用的更多相关文章
- 【转帖】kubernetes 部署ingress
kubernetes 部署ingress https://www.cnblogs.com/dingbin/p/9754993.html 明天尝试一下 之前的文档里面一直没有提 需要改host文件 我有 ...
- kubernetes 部署ingress
kubernetes Ingess 是有2部分组成,Ingress Controller 和Ingress服务组成,常用的Ingress Controller 是ingress-nginx,工作的原理 ...
- 没有部署ingress pod的woker节点telnet slb的80 443端口不通
一,问题描述 没有部署ingress pod的woker节点telnet slb的80 443端口不通 二,解决办法 方法一:改用svc地址调用 方法二:让每台woker节点都部署ingress po ...
- kubernetes 1.14安装部署ingress
简单介绍: Ingress是Kubernetes API的标准资源类型之一,它其实就是一组基于DNS名称或URL路径把请求转发至指定的Service资源的规则,用来将集群外部的请求流量转发至集群内部. ...
- k8s部署高可用Ingress
部署高可用Ingress 官网地址https://kubernetes.github.io/ingress-nginx/deploy/ 获取ingress的编排文件 wget https://raw. ...
- k8s Ingress 理解和部署
目录 前言 Ingress 与 ingress-controller Ingress 部署 1.部署 ingress-controller 2.部署测试 web 服务 3.部署 Ingress 4.检 ...
- 入门级实操教程!从概念到部署,全方位了解K8S Ingress!
Kubernetes Ingress用于添加规则,以将流量从外部路由到Kubernetes集群的服务中.在本文中你将了解ingress 的概念,以及用于路由外部流量到Kubernetes deploy ...
- Kubernetes Ingress 部署
Kubernetes Ingress 部署 Pod与Ingress的关系• 通过service相关联• 通过Ingress Controller实现Pod的负载均衡- 支持TCP/UDP 4层和HTT ...
- Kubernetes集群部署关键知识总结
Kubernetes集群部署需要安装的组件东西很多,过程复杂,对服务器环境要求很苛刻,最好是能连外网的环境下安装,有些组件还需要连google服务器下载,这一点一般很难满足,因此最好是能提前下载好准备 ...
随机推荐
- [Python] 练习代码
# from random import randrange # num = int(input('摇几次骰子: ')) # sides=int(input('筛子有几个面: ')) # sum=0 ...
- 自然语言处理之LDA主题模型
1.LDA概述 在机器学习领域,LDA是两个常用模型的简称:线性判别分析(Linear Discriminant Analysis)和 隐含狄利克雷分布(Latent Dirichlet Alloca ...
- TCP三次握手与四次握手
背景描述 通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信.但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在 ...
- (5)HomeAssistant 增加设备
将设备添加到Home Assistant https://www.home-assistant.io/docs/configuration/devices/ configuration.yaml文件 ...
- ROS 创建服务和请求
教程 维基 http://wiki.ros.org/cn/ROS/Tutorials 快速过程 创建包 $ cd ~/catkin_ws $ mkdir ~/catkin_ws/src $ cd ~/ ...
- Flask路由报错:raise FormDataRoutingRedirect(request)
raise FormDataRoutingRedirect(request)FormDataRoutingRedirect: A request was sent to this URL (http: ...
- django如何语法高亮模块
首先,django的语法高亮必须配合markdown模块使用. 注意事项: 确保在渲染文本时添加了 markdown.extensions.codehilite 拓展 确保安装了 Pygments. ...
- WPF Binding学习(四) 绑定各种数据源
转自:http://blog.csdn.net/lisenyang/article/details/18312199 1.集合作为数据源 首先我们先创建一个模型类 public class Stude ...
- Git分支管理规范
关于Git的一些分支管理规范... 一.分支与角色说明 Git 分支类型 master 分支(主分支) 稳定版本 develop 分支(开发分支) 最新版本 release 分支(发布分支) 发布新版 ...
- handsontable-chosen-editor
https://github.com/mydea/handsontable-chosen-editor handsontable-chosen-editor是handsontable column的扩 ...