虚拟侵入

k8s ingress

久未见 提交于 2019-12-06 00:27:27
service 的弊端 一个服务一个端口映射,要管理端口避免冲突 nodeport 实现的是四层转发 没有统一的入口 Igress 简单理解为在service 基础上加入了一个负载代理。 实现原理 ingress是一个负载代理规则,它是通过ingress-controller 实现的。它通过统一的端口(80/443)可实现4/7层负载,为每个服务创建一个域名,每个node 节点部署一个ingress代理,实际与pod 通讯还是会经过service。 它的底层实际就是nginx或者其他的负载软件,每一个服务做代理的过程即使为这个服务的pod 创建一个upstream和proxy. Igress 的创建 先创建ingress 控制器,再创建ingress 规则 创建ingress 控制器 通过编写yaml 文件或者命令方式,在yaml 中可以定义对外提供的统一端口。 kubectl apply -f ingress.yaml kubectl get pods -n ingress-nginx  #查看创建的ingress,必须在它自己的命名空间ingress-nginx 中查看 创建Ingress 规则 vi ingress.yaml dns解析 把任意一个 ingress controler所在的pod 的ip 地址解析为定义的应用程序域名,访问域名后请求到底controller

无数据库模式kong/kong-ingress-controller

岁酱吖の 提交于 2019-12-05 22:19:06
apiVersion: v1 kind: Namespace metadata: name: kong --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: kongconsumers.configuration.konghq.com spec: additionalPrinterColumns: - JSONPath: .username description: Username of a Kong Consumer name: Username type: string - JSONPath: .metadata.creationTimestamp description: Age name: Age type: date group: configuration.konghq.com names: kind: KongConsumer plural: kongconsumers shortNames: - kc scope: Namespaced validation: openAPIV3Schema: properties: credentials: items: type: string type: array custom_id: type

kubernetes进阶(四)服务暴露-ingress控制器之traefik

不打扰是莪最后的温柔 提交于 2019-12-05 09:36:29
上一章我们测试了在集群内部解析service名称, 下面我们测试在集群外部解析: 根本解析不到,因为我们外部用的dns是10.4.7.11,也就是我们的自建bind dns,这个DNS服务器上也没有响应的搜索域。 如何能让集群外部访问nginx-dp? 这里有两种服务暴露方式:修改工作模式,在kube-proxy中修改,并重启 1、使用nodeport方式,但是这种方式不能使用ipvs,只能使用iptables,iptables只能使用rr调度方式。原理相当于端口映射,将容器内的端口映射到宿主机上的某个端口。 2、使用ingress,但是只能工作在七层网络下,建议暴露http, https可以使用前端nginx来做证书方面的卸载 ---推荐使用 Ingress是基于域名和URL路径,将用户的请求转发至特定的service资源。 下面我们部署traefik: GITHUB官方地址 在hdss7-200上执行: 下载镜像: # docker pull traefik:v1.7.2-alpine# docker tag add5fac61ae5 harbor.od.com/public/traefik:v1.7.2# docker push harbor.od.com/public/traefik:v1.7. 创建资源配置清单: 1.rbac.yaml # cd /data/k8s

k8s 使用配合Jenkins CICD 方案

∥☆過路亽.° 提交于 2019-12-04 16:38:19
环境描述: 192.168.0.63为k8s集群主节点,保证你的集群里dns与ingress已经安装了 编译打包就不叙述了,主要流程就是: 编译打包-> build镜像 -> 上传镜像到私服 -> 使用ansible-playbook拷贝模板文件到集群主节点 -> 更改模板文件 -> create pod,service,ingress # # # # # # # # # # # docker images | grep ${projectname}-${environment} | gawk '{print $3}' | xargs docker rmi; docker images | grep none | gawk '{print $3}' | xargs docker rmi;docker build -t registry.skong.com/${projectname}-${environment}:${branch} .; docker push registry.xxxx.com/${projectname}-${environment}:${branch}; cp /data/source/templet/templet.yaml .; cp /data/source/templet/ingress_templet.yaml .; sed -i ‘s

k8s容器-运维管理篇

与世无争的帅哥 提交于 2019-12-04 16:08:06
二. 运维和管理 维护参考网址 https://jimmysong.io/kubernetes-handbook/practice/install-kubernetes-on-centos.html 1. node管理 禁止pod调度到该节点上 kubectl cordon <node> 驱逐该节点上的所有pod kubectl drain <node> 允许调度新的pod到该节点 kubectl uncordon <node> 附:该命令会删除该节点上的所有Pod(DaemonSet除外),在其他node上重新启动它们,通常该节点需要维护时使用该命令。直接使用该命令会自动调用命令。 当该节点维护完成,启动了kubelet后,再使用即可将该节点添加到kubernetes集群中 ------------------------------------------------------------------------------------------------------------------------- eg: 列出集群里面所有的节点: kubectl get nodes 告知 Kubernetes 移除节点: kubectl drain <node name> 执行完成后,如果没有任何错误返回,您可以关闭节点(如果是在云平台上,可以删除支持该节点的虚拟机)

Kubernetes Ingress-Nginx实现高可用

我与影子孤独终老i 提交于 2019-12-04 09:12:52
假定我们在Kubernetes 指定两个worker节点中部署了ingress nginx来为后端的pod做proxy,这时候我们就需要通过keepalived实现高可用,提供对外的VIP 首先我们要先确保有两个worker节点部署了ingress nginx 在本实验中,环境如下: IP地址 主机名 描述 10.0.0.31 k8s-master01 10.0.0.34 k8s-node02 ingress nginx、keepalived 10.0.0.35 k8s-node03 ingress nginx、keepalived 1、查看ingress nginx状态 [root@k8s-master01 Ingress]# kubectl get pod -n ingress-nginx -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-ingress-controller-85bd8789cd-8c4xh 1/1 Running 0 62s 10.0.0.34 k8s-node02 <none> <none> nginx-ingress-controller-85bd8789cd-mhd8n 0/1 Pending 0 3s <none> <none>

kubernetes v1.15.4 部署手册

て烟熏妆下的殇ゞ 提交于 2019-12-04 01:33:57
kubernetes v1.15.4 部署手册 配置要求 推荐在阿里云采购如下配置:(也可以使用自己的虚拟机、私有云等) 3台 2核4G 的ECS(突发性能实例 t5 ecs.t5-c1m2.large或同等配置,单台约 0.4元/小时,停机时不收费) Cent OS 7.6 安装后的软件版本为 Kubernetes v1.15.4 calico 3.8.2 nginx-ingress 1.5.3 Docker 18.09.7 检查 centos / hostname # 在 master 节点和 worker 节点都要执行 cat /etc/redhat-release # 此处 hostname 的输出将会是该机器在 Kubernetes 集群中的节点名字 # 不能使用 localhost 作为节点的名字 hostname # 请使用 lscpu 命令,核对 CPU 信息 # Architecture: x86_64 本安装文档不支持 arm 架构 # CPU(s): 2 CPU 内核数量不能低于 2 lscpu 修改 hostname # 修改 hostname hostnamectl set-hostname your-new-host-name # 查看修改结果 hostnamectl status # 设置 hostname 解析 echo "127.0.0.1 $

ingress nginx https配置

隐身守侯 提交于 2019-12-03 20:30:16
3、https配置 第一步:制作自签证书 [root@master demo]# openssl genrsa -out tls.key 2048 [root@master demo]# openssl req -new -x509 -key tls.key -out tls.crt -subj /C=CN/ST=Guangdong/L=Guangzhou/O=devops/CN=feiutest.cn 生成两个文件: [root@master demo]# ls tls.crt tls.key 第二步:创建secret secret介绍 [root@master demo]# kubectl create secret tls nginx-test --cert=tls.crt --key=tls.key [root@master demo]# kubectl get secret NAME TYPE DATA AGE nginx-test kubernetes.io/tls 2 17s 第三步:修改ingress vi nginx-ingress-yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: test-ingress namespace: default annotations:

Ingress-nginx 部署使用

泪湿孤枕 提交于 2019-12-03 17:04:03
Ingress-nginx 部署使用 一、Ingress 简介 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,在Kubernetes 目前 提供了以下几种方案: NodePort LoadBalancer Ingress Ingress 组成 ingress controller   将新加入的Ingress转化成Nginx的配置文件并使之生效 ingress服务   将Nginx的配置抽象成一个Ingress对象,每添加一个新的服务只需写一个新的Ingress的yaml文件即可 Ingress 工作原理 1.ingress controller通过和kubernetes api交互,动态的去感知集群中ingress规则变化, 2.然后读取它,按照自定义的规则,规则就是写明了哪个域名对应哪个service,生成一段nginx配置, 3.再写到nginx-ingress-control的pod里,这个Ingress controller的pod里运行着一个Nginx服务,控制器会把生成的nginx配置写入/etc/nginx.conf文件中, 4.然后reload一下使配置生效。以此达到域名分配置和动态更新的问题。 Ingress 可以解决什么问题 1.动态配置服务   如果按照传统方式,

【nginx】上传文件error报413 Request Entity Too Large

狂风中的少年 提交于 2019-12-03 14:26:08
nginx配置增大上传文件限制   如果访问地址是通过nginx转发配置的   server{     ... ...      client_max_body_size 50M;     ... ...   } ingress配置增大上传文件限制   如果访问地址是通过k8s里ingress转发配置的   apiVersion: extensions/v1beta1   kind: Ingress   metadata:   name: livevodadmin   namespace: gymdev   annotations:    nginx.ingress.kubernetes.io/proxy-body-size: 500m   spec:   rules:   - host: livevodadmin.xxx.cn    http:    paths:    - backend:    serviceName: livevodadmin-service    servicePort: 80    path: /    - backend:    serviceName: gymtv-service    servicePort: 8080    path: /gymTV 来源: https://www.cnblogs.com/chy-op/p/11799632