Traefik

提升你 Kubernetes 技能的 5 种方式

拜拜、爱过 提交于 2020-08-11 12:41:05
值此周年纪念之际,来通过这些深度文章和实践项目了解下 Kubernetes。 在云原生的成长期,开发者们发现在一个小型的、原子化的、精简的 Linux 镜像里编写应用程序很方便,这些镜像与它们所运行的服务器共享资源。从技术上讲,这些基于内核命名空间的小环境定义被称为 容器 。随着容器的激增,系统管理员们很快意识到,开发一个不仅能帮助他们管理容器,还能帮助他们管理下面的虚拟化基础设施的工具变得至关重要。于是, Kubernetes 应运而生。 Kubernetes 是一个可扩展开源平台,用于管理容器。它可以帮助管理员和开发者们围绕容器管理工作负载、服务和进程。它促进了声明式配置,更容易实现自动化。在它相对较短的生命周期中,它已经催生了一个迅速成长的生态系统,其中包括来自大量公司和项目的服务、支持和工具。 如果你想对这项重要的云技术有更多的了解,这里有一些能帮忙你更深入学习的文章。还有 5 个项目可以帮你把学到的东西付诸实践。 遏制容器乱象 2016 年,我们发布了《 使用 Kubernetes 遏制容器乱象 》,这是一篇由 Terry Ryan 写的关于 Kubernetes 的介绍性文章,讲述了 Kubernetes 如何帮助管理员和架构师们努力应对容器。如果你想找一篇从底层介绍容器是做什么的以及 Kubernetes 是如何实现容器管理的,那么你应该先读下本文

k8s集群部署mysql(docker自创建镜像)

江枫思渺然 提交于 2020-08-06 17:13:49
前言 公司要在k8s集群中使用mysql服务,作为对开发环境的测试数据存储.目前这个服务已经在k8s集群中稳定运行.话不多说.直接开搞 环境说明:k8s集群版本:1.17 mysql版本:mysql-5.7.20 1创建dockerfille编写 FROM centos:7 RUN ping -c 1 www.baidu.com RUN yum remove -y libnuma.so.1 RUN yum install -y vim net-tools cmake numactl bison bison-devel libaio-devel gcc gcc-c++ git ncurses-devel RUN groupadd mysql && useradd mysql -g mysql && mkdir /home/mysql/mydata/ && mkdir /home/mysql/mysql_logs && mkdir /home/mysql/scripts && mkdir /home/mysql/cnf ADD ./mysql-5.7.20-linux-glibc2.12 -x86_64.tar.gz /home/mysql/ RUN chown mysql:mysql -R /home/mysql/ && cd /home/mysql/ && \ mv mysql-

高并发葵花宝典

柔情痞子 提交于 2020-07-29 06:01:13
目录 前言 一、常用指标 响应时间 并发数 QPS TPS 二、夺命三高 高并发 高性能 高可用 三、常见招式 分流 缓存 队列 CDN 池化 扩容 熔断 限流 降级 分层 部署分级 日志监控 查询优化 读写分离 分库分表 前言 冰冻三尺非一日之寒,葵花宝典也不是一天写出来的,系统设计也如此,好的架构是不断演进的。 一般来说能用单块架构解决的问题,尽量不要采用分布式。 分布式虽然可以提高系统的响应能力,也带来了更高的复杂性,如果团队技术人员水平hold不住的话,反而会产生更多问题,例如问题难以定位、系统性能下降、某种业务实现困难或无法实现等问题。 以下内容由伟大的诗人chenqionghe整理,light weight baby~ 一、常用指标 响应时间 直观反应系统快慢,一般控制在200ms以内,超过1s用户已经能感觉到慢了 并发数 同时处理请求的数目 QPS 每秒查询请求数 TPS 每秒执行事务数,着重反应写 二、夺命三高 没错,就是高血压、高血糖和高血脂,开玩笑啦~ 高并发 通过设计让系统能接收更多的用户并发请求,承担更大的流量。 一般考查并发数、QPS和TPS。 示例:庐山百龙霸,并发百龙 高性能 一般指服务响应时间快 用户视角。APP、浏览器上能直观感受快 开发视角。响应延迟低,系统吞吐量大,并发处理能力强 运维视角。基础设施配置高,CPU多核心,内存容量大 示例

k8s:py项目发布完整流程

流过昼夜 提交于 2020-07-25 06:50:13
k8s:py项目发布流程 1. 编写Dockerfile # cat Dockerfile FROM python:3.6-slim USER root RUN apt-get update && apt-get install gcc -y && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* ADD . /app WORKDIR /app RUN pip install -r requirement.txt EXPOSE 8000 CMD [ "uvicorn", "main:app","--host", "0.0.0.0", "--port", "8000" ] 2. 验证Docker镜像 3. 编写Pod资源清单 要学会借鉴官网!!!,演示一遍 首先要问清楚业务是有状态还是无状态,无状态就选deployment,有状态就选statefulset。我这里是个小程序,无状态应用。 Kubernetes版本变化很快,搞k8s一定要学会看官网。 官方案例 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx

DevOps

断了今生、忘了曾经 提交于 2020-07-24 21:10:25
作者:CODING - 王炜 1. 开篇 如果让你主导一款千万、甚至亿级用户产品的功能迭代,你会怎么做?你需要面对的挑战可能来自于: 商业战略的变化带来新的产品诉求,而产品的任何改动哪怕仅是界面调整,都将面临无数存量用户的挑战 这时候,作为产品负责人,你会选择稳定压倒一切?还是自我革新,继续追求用户和市场的价值呢?笔者通过对 Facebook、Twitter 等互联网巨头的调研,试图窥探他们在瞬息万变的市场中仍然保持“稳定”迭代的秘密 - 渐进式交付 通过本篇文章,你将收获: 什么是渐进式交付,为什么 DevOps 能够天然与其结合 为什么渐进式交付能赋予大规模组织下的产品持续交付及稳定迭代的能力 小项目,大项目同样适用的实践经验 2. 什么是渐进式交付 移动互联网时代的爆发,诞生了一大批巨型互联网企业和项目,部分大型项目的技术复杂程度和组织复杂程度甚至不亚于传统的工业项目,为了实现对这些项目的管理和迭代,我们试图将目光投向已经完成工业革命的传统工业寻找答案。 而“渐进式交付”一词最早起源于大型、复杂的工业化项目,比如:铁路、汽车和军事产业、新基建的 5G 网络产业等等。 它和 DevOps 的目标一致,试图将复杂的工程化项目进行分阶段拆解,通过持续进行小型迭代闭环,降低交付成本和节约交付时间 可查询的资料显示,“渐进式交付”流行于互联网产品是在近两年 Kubernetes

Traefik + Consul not generaitng SSL certificates in replicated mode, using TRAEFIK DEFAULT CERT

为君一笑 提交于 2020-07-21 10:26:04
问题 I have a setup of 1 master and 2 worker nodes running docker swarm. I deployed Traefik + Consul using the setup below: version: '3.3' services: consul-leader: image: consul:latest command: - agent - -server - -client=0.0.0.0 - -bootstrap - -ui environment: CONSUL_BIND_INTERFACE: eth0 CONSUL_LOCAL_CONFIG: '{"leave_on_terminate": true}' volumes: - consul-data-leader:/consul/data networks: - default - traefik-public logging: driver: json-file deploy: labels: traefik.tags: traefik-public traefik

Traefik + Consul not generaitng SSL certificates in replicated mode, using TRAEFIK DEFAULT CERT

天大地大妈咪最大 提交于 2020-07-21 10:25:39
问题 I have a setup of 1 master and 2 worker nodes running docker swarm. I deployed Traefik + Consul using the setup below: version: '3.3' services: consul-leader: image: consul:latest command: - agent - -server - -client=0.0.0.0 - -bootstrap - -ui environment: CONSUL_BIND_INTERFACE: eth0 CONSUL_LOCAL_CONFIG: '{"leave_on_terminate": true}' volumes: - consul-data-leader:/consul/data networks: - default - traefik-public logging: driver: json-file deploy: labels: traefik.tags: traefik-public traefik

Traefik + Consul not generaitng SSL certificates in replicated mode, using TRAEFIK DEFAULT CERT

╄→尐↘猪︶ㄣ 提交于 2020-07-21 10:25:25
问题 I have a setup of 1 master and 2 worker nodes running docker swarm. I deployed Traefik + Consul using the setup below: version: '3.3' services: consul-leader: image: consul:latest command: - agent - -server - -client=0.0.0.0 - -bootstrap - -ui environment: CONSUL_BIND_INTERFACE: eth0 CONSUL_LOCAL_CONFIG: '{"leave_on_terminate": true}' volumes: - consul-data-leader:/consul/data networks: - default - traefik-public logging: driver: json-file deploy: labels: traefik.tags: traefik-public traefik

Traefik v2: 404 while routing HTTP traffic globally to HTTPS

自古美人都是妖i 提交于 2020-07-20 10:34:28
问题 I have the problem that I can route HTTPS traffic but I can not globally redirect the HTTP traffic to HTTPS. In my case I only want HTTPS traffic, so that I want to redirect all the incoming traffic. Currently I get an 404 error while I try to serve my URLs over HTTP. I already enabled DEBUG logs in Treafik, but I can not see any problems or unnormal stuff in the logs. Additionally I saw a pretty similar topic here on Stackoverflow, but we found out, that his error was not the same to mine:

Traefik v2: 404 while routing HTTP traffic globally to HTTPS

荒凉一梦 提交于 2020-07-20 10:34:00
问题 I have the problem that I can route HTTPS traffic but I can not globally redirect the HTTP traffic to HTTPS. In my case I only want HTTPS traffic, so that I want to redirect all the incoming traffic. Currently I get an 404 error while I try to serve my URLs over HTTP. I already enabled DEBUG logs in Treafik, but I can not see any problems or unnormal stuff in the logs. Additionally I saw a pretty similar topic here on Stackoverflow, but we found out, that his error was not the same to mine: