云原生/微服务架构/运维 系列课程
文章平均质量分 94
docker,k8s/k3s/rancher/helm,ai平台,大数据平台架构(presto),airflow调度,istio/linkerd服务网格,kubeflow分布式训练和服务化,网关(kong/nginx), 消息队列,prometheus监控生态,efk日志系统
腾讯AI架构师
主要涉及领域 docker kubernetes 云原生技术,AI平台,大数据架构,python,分布式微服务,自动化运维
展开
-
开源 argo dashboard 多集群、多用户、拖拉拽、云原生调度
argo workflow官网 https://argoproj.github.io/argo-workflows/使用argo server存在几个问题:1、oa绑定到自己公司困难2、rbac权限是k8s的,而不是web框架中定义的,没法加入自己定义的项目组3、模板市场用户没法自行开发4、没有拖拉拽编排界面5、定时调度没有高级模板变量6、无法进行多k8s集群管理调度,不好划分多项目组资源池…argo dashboard开源地址:https://github.com/tencentmus原创 2022-05-10 15:39:43 · 1402 阅读 · 0 评论 -
airflow+k8s 多用户-分布式-跨集群-容器化调度
最开始采用airflow+k8s分布式容器化调度的方案主要是为了解决下面的问题:1、特有环境/特有脚本调度的调度问题2、大数据量任务或大算力任务节点故障和调度管理问题目前已经基于airflow+k8s改造成多用户-分布式-跨集群-容器化调度的平台。airflow官网:https://airflow.apache.org/docs/stable/airflow介绍airflow 是一个编排、调度和监控workflow的平台,由Airbnb开源,现在在Apache Software Foundati原创 2022-04-26 17:26:52 · 4357 阅读 · 2 评论 -
Prometheus简介(基于Kubernetes)
Prometheus简介(基于Kubernetes) 本文中不包含Alertmanager和远程存储的内容,下次有时间在补充!!!1、Prometheus简介Prometheus是一个开源的系统监控工具。根据配置的任务(job)以http/s周期性的收刮(scrape/pull)指定目标(target)上的指标(metric)。目标(target)可以以静态方式或者自动发现方...原创 2022-04-18 19:36:09 · 1442 阅读 · 0 评论 -
kubernetes存储详解
1. Volumes1.1. volume概述容器上的文件生命周期同容器的生命周期一致,即容器挂掉之后,容器将会以最初镜像中的文件系统内容启动,之前容器运行时产生的文件将会丢失。Pod的volume的生命周期同Pod的生命周期一致,当Pod被删除的时候,对应的volume才会被删除。即Pod中的容器重启时,之前的文件仍可以保存。容器中的进程看到的是由其 Docker 镜像和卷...原创 2022-04-18 19:35:29 · 1085 阅读 · 0 评论 -
使用k8s Ingress暴露gRPC服务
Kubernetes 暴露服务的方式目前只有三种:LoadBlancer Service、NodePort Service、Ingress;前两种估计都应该很熟悉,下面详细的了解下这个 IngressIngress由两部分组成:Ingress Controller 和 Ingress 服务。参考:https://www.jianshu.com/p/189fab1845c5...原创 2022-04-18 19:33:32 · 1707 阅读 · 0 评论 -
cube studio开源一站式云原生机器学习平台-架构(三)
前言:cube是开源的云原生机器学习平台,目前包含特征平台,支持在/离线特征;数据源管理,支持结构数据和媒体标注数据管理;在线开发,在线的vscode/jupyter代码开发;在线镜像调试,支持免dockerfile,增量构建;任务流编排,在线拖拉拽;开放的模板框架,支持tf/pytorch/spark/ray/horovod/kaldi等分布式训练任务;task的单节点debug,分布式任务的批量优先级调度,聚合日志;任务运行资源监控,报警;定时调度,支持补录,忽略,重试,依赖,并发限制,定时任务算力的智原创 2022-04-15 14:21:54 · 2312 阅读 · 0 评论 -
使用rancher自建k8s集群
建设前准备申请docker 仓库因为总需要存放镜像的仓库,内网可以自己部署harbor,在外网可以官方docker hub,或者阿里云、腾讯云将基础组件推送到内网仓库如果能连接外网的客户忽略。内网无法连接外网,需要我们提前拉好镜像。关于镜像的版本与rancher版本、k8s版本有关。比如我这里使用的是rancher v2.3.2,k8s使用的是v1.15.5不过依赖镜像是在安装r...原创 2022-04-08 20:04:52 · 2649 阅读 · 1 评论 -
Docker Swarm 使用
介绍Docker Swarm 是 Docker 公司推出的官方容器集群平台,基于 Go 语言实现作为容器集群管理器,Swarm 最大的优势之一就是 100% 支持标准的 Docker API。各种基于标准 API 的工具比如 Compose、docker-py、各种管理软件,甚至 Docker 本身等都可以很容易的与 Swarm 进行集成。这大大方便了用户将原先基于单节点的系统移植到 Swar...转载 2019-10-25 18:17:55 · 3083 阅读 · 0 评论 -
将应用制作成镜像发布到服务器k8s上作为容器微服务运行。
首先我们需要在本地docker中调试运行一遍,再发布到k8s上去将应用制作成镜像将应用制作成docker镜像,需要我们编写dockerfile文件.可以参考https://blog.csdn.net/luanpeng825485697/article/details/80921390编写好dockerfile以后,我们将应用制作成镜像docker build -t imag...原创 2018-08-03 22:38:09 · 20766 阅读 · 0 评论 -
docker-compose 使用
如果没有k8s环境,只能使用docker安装应用,而一个应用可能需要部署多个容器时就需要用到docker-compose了。安装docker-composesudo pip install docker-composedocker-compose示例假设我们有两个应用,web后端和mysql应用,web后端需要调用mysql应用。我们把web应用都放在web目录下面,该目录下两个文件...原创 2019-10-18 12:23:12 · 1055 阅读 · 0 评论 -
Knative详解
Knative 主要由 Build、Serving 和 Eventing 三大核心组件构成。Knative 正是依靠这三个核心组件,驱动着 Knative 这艘 Serverless 巨轮前行。下面让我们来分别介绍一下这三个核心组件。buildKnative Build 是基于现有的 Kubernetes 能力之上,提供的一套标准化、可移植、可复用的容器镜像构建方式。通过在 Kubernetes 上运行复杂的构建任务,Knative Build 使你不必再单独开发和重复这些镜像构建过程, 从而通过系统化转载 2020-06-26 19:10:34 · 8465 阅读 · 1 评论 -
shell bash常用工具教程(curl,jq)
安装apt install jqjq命令格式jq [options] filter [files]**options:**--version:输出jq的版本信息并退出--slurp/-s:读入整个输入流到一个数组。--raw-input/-R:不作为JSON解析,将每一行的文本作为字符串输出到屏幕。--null-input/ -n:不读取任何输入,过滤器运行使用null作为输入。...原创 2019-03-28 12:25:53 · 3186 阅读 · 0 评论 -
docker教程,dockerfile教程
我们使用dokcer来管理容器镜像。docker使用教程我们经常需要docker来拉取和管理离线镜像。查找容器镜像docker search imagename下载容器镜像到本地,我们可以使用 docker images 命令来查看我们的新镜像docker pull imagename # 下载最新版docker pull imagename:5.6 #...原创 2018-07-05 11:39:04 · 21382 阅读 · 1 评论 -
Istio 组件详解
1. istio 组件构成以下是istio 1.1 官方架构图:虽然Istio 支持多个平台, 但将其与 Kubernetes 结合使用,其优势会更大, Istio 对Kubernetes 平台支持也是最完善的, 本文将基于Istio + Kubernetes 进行展开.如果安装了grafana, prometheus, kiali, jaeger等组件的情况下, 一个完整的控制面组件包括以下pod:% kubectl -n istio-system get podNAME转载 2020-06-26 19:49:38 · 2181 阅读 · 0 评论 -
grafana设置mysql为数据源,并进行可视化
全栈工程师开发手册 (作者:栾鹏) 架构系列文章官网:http://docs.grafana.org/features/datasources/mysql/先封装一下最新的grafana,docker hub地址SELECT from_unixtime(create_time) as time_sec, count(device_id) as value, device_i...原创 2019-03-10 17:29:49 · 14475 阅读 · 1 评论 -
开发环境ubuntu16.04(ubuntu18.04)安装以后的初始化设置
安装系统以后要先更新一遍软件搜索软件更新器,现更新一遍软件输入法:搜狗下载搜狗 https://jingyan.baidu.com/article/ad310e80ae6d971849f49ed3.html 双击下载的deb文件安装,在软件中心安装软件. im-config修改上面的ibus为fcitx,重启。fcitx-config-gtk3选择搜狗就可以了。 并且为了能...原创 2020-11-22 18:26:16 · 6590 阅读 · 0 评论 -
kubernetes 容器内获取Pod信息(包括:宿主主机IP)
kubernetes 自从1.7开始,可以在pod 的container 内获取pod的spec,metadata 等信息。具体方法可以通过env获取: env: - name: MY_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName ...原创 2020-03-09 15:46:03 · 15566 阅读 · 0 评论 -
tshark/wireshark抓包小结
tshark命令详解网络抓包,分析工具。wireshark 的 Linux命令行工具。tshark option-i 设置抓包的网络接口,不设置则默认为第一个非自环接口。-D 列出当前存在的网络接口。在不了解OS所控制的网络设备时,一般先用“tshark -D”查看网络接口的编号以供-i参数使用。-f 设定抓包过滤表达式(capture filter expression)。抓包过滤表达...转载 2020-02-17 17:59:06 · 2644 阅读 · 0 评论 -
canal 增量订阅mysql消息
docker 部署docker run --name canal-server -e canal.instance.master.address=192.168.83.128:3306 -e canal.instance.dbUsername=root -e canal.instance.dbPassword=admin -p 11111:11111 -d canal/canal-...转载 2019-08-21 17:01:52 · 1331 阅读 · 0 评论 -
全国地级市坐标、名称、编码获取 / 全球城市坐标位置
阿里有在线的接口和web界面:http://datav.aliyun.com/tools/atlas/#&lat=33.54139466898275&lng=104.32617187499999&zoom=4import datetime,time,json,requestsdata = requests.get('https://geo.datav.aliyun.c...原创 2020-02-14 21:36:28 · 3982 阅读 · 1 评论 -
Airflow集成在线编写创建dag的插件
https://cloud.tencent.com/developer/article/1424491原创 2020-02-11 19:29:06 · 4011 阅读 · 0 评论 -
jmeter 压力测试教程全解
: 压力测试使用Jmeter进行RPC压力测试原创 2020-12-07 20:21:16 · 38450 阅读 · 0 评论 -
kafka实战教程(python操作kafka),kafka配置文件详解
什么是kafka安装参考:https://www.cnblogs.com/hei12138/p/7805475.html原创 2018-07-13 19:08:00 · 74232 阅读 · 12 评论 -
kubectl命令大全
kubectl 输出格式显示Pod的更多信息kubectl get pod <pod-name> -o wide以yaml格式显示Pod的详细信息kubectl get pod &原创 2018-07-01 16:09:36 · 27650 阅读 · 0 评论 -
ubuntu搭建Kubernetes集群(ansible,kubedam,rancher)
每个主机切换到root用户1、设置主机之间ssh无密码登录。本地系统执行 ssh-keygen -t rsa 命令,生成密钥文件本地机器执行命令如:ssh-copy-id -i ~/.ssh/id_rsa.pub dss@10.164.194.42, 将公钥文件传输的远程机器,并生效。注意:免密码登录的处理是用户对用户的,切换其他用户后,仍然需要输入密码公钥传到远程机器并生效的操作,...原创 2019-11-15 13:33:13 · 4016 阅读 · 0 评论 -
Kubernetes RBAC 详解
原文链接:Kubernetes RBAC 详解前面两节课我们学习了Kubernetes中的两个用于配置信息的重要资源对象:ConfigMap和Secret,其实到这里我们基本上学习的内容已经覆盖到Kubernetes中一些重要的资源对象了,来部署一个应用程序是完全没有问题的了。在我们演示一个完整的示例之前,我们还需要给大家讲解一个重要的概念:RBAC - 基于角色的访问控制。RBAC使用rba...转载 2019-03-24 17:06:39 · 2247 阅读 · 0 评论 -
nginx使用教程,在k8s上的安装部署,代理内网mysql/docker
k8s部署nginx对于nginx来说,需要持久化的数据主要有两块:1、nginx配置文件和日志文件2、网页文件一、部署podapiVersion: v1kind: ReplicationControllermetadata: name: nginx-test labels: name: nginx-testspec: replicas: 1 selecto...原创 2019-01-12 15:37:30 · 27471 阅读 · 7 评论 -
shell编程
什么是shell编程高大上的解释,往往让人摸不住头脑。一句话概括就是:shell编程就是对一堆Linux命令的逻辑化处理。为什么要会shell编程就是批处理动作,解放双手,避免重复性劳动。第一个shell程序#!/bin/bash#第一个shell小程序echo hello world!第一行表示我们选择使用bash shell。shell中#符号表示注释。...转载 2019-08-05 21:06:35 · 12016 阅读 · 3 评论 -
docker部署kafka,k8s(helm)部署kafka
我们在k8s上部署kafka,接收kafka生产者的数据,并将信息分发到消费者kafka的基础知识参考:https://blog.csdn.net/luanpeng825485697/article/details/81036028docker部署kafka同之前一样,我们现在docker部署一遍试试坑拉取镜像zookeeper和kafka的镜像docker pull wu...原创 2018-08-24 10:04:24 · 10198 阅读 · 3 评论 -
vscode 使用技巧(持续更新)
远程调试docker 容器打开vscode 安装remote container,重启 vscode ,启动容器按F1进入搜索,输入Remote-Containers: Attaching to running containers选择想调试的容器.打开文件夹, 打开文件,选择调试,会自动在容器中安装调试器, 安装调试器以后重启vscode打开文件,选择使用的python编译环境...原创 2019-11-07 15:31:22 · 1071 阅读 · 0 评论 -
rancher 使用部分运维操作
server迁移先在原机器上把数据压缩,不要关闭源集群rancher server 因为后面还要执行kubectldocker create --volumes-from myrancher-new --name rancher-data-new rancher/rancher:v2.3.2docker run --volumes-from rancher-data-new -v $PWD:/backup csighub.tencentyun.com/tme-kubeflow/alpine tar z原创 2021-09-02 19:21:15 · 917 阅读 · 0 评论 -
rancher中添加用户,赋予权限
全栈工程师开发手册 (作者:栾鹏) 架构系列文章登录rancher,先在全局添加用户根据需要在全局/集群/项目中创建角色添加或者编辑角色,为角色授权将全局用户添加到集群或者项目成员中添加时为用户绑定角色这样就成功创建了用户-绑定了角色-赋予了权限。用户登录效果...原创 2020-03-04 17:18:39 · 6127 阅读 · 0 评论 -
docker/k8s容器优雅退出(python,go,java)
docker kill 直接杀死容器进程docker stop是向容器进程发送SIGTERM信号,本文介绍容器中的进程捕获 SIGTERM 信号,优雅的退出。先来了解一下信号SIGINT程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。SIGQUIT和SIGINT类似, 但由QUIT字符(通常是Ctrl-)来控制. ...原创 2020-02-29 18:46:48 · 7350 阅读 · 0 评论 -
Grafana教程(prometheus 基本查询语法,alerting报警)
prometheus原理可以参考:https://blog.csdn.net/luanpeng825485697/article/details/82318204k8s上的部署可以参考: https://blog.csdn.net/luanpeng825485697/article/details/83755430一、Data Source — 数据源Grafana支持多种不同的时序数据库数...原创 2018-11-13 17:16:01 · 60190 阅读 · 0 评论 -
istio简介和基础组件原理(服务网格Service Mesh)
Istio简介 Istio:一个连接,管理和保护微服务的开放平台。 按照isito文档中给出的定义: Istio提供一种简单的方式来建立已部署的服务的网络,具备负载均衡,服务到服务认证,监控等等功能,而不需要改动任何服务代码。简单的说,有了Istio,你的服务就不再需要任何微服务开发框架(典型如Spring Cloud,Dubbo),也不再需要自己手动实现各种复杂的服务...转载 2018-11-27 13:06:46 · 72379 阅读 · 7 评论 -
kong 自建一个具有健康检查功能的http/tcp负载均衡器,配置流量权重,自动/手动目标健康,流量统一认证、鉴权、限流限速、修正,监控、日志等功能
Kong目前kong的最新版为2.2,官方git在https://github.com/Kong/kong,下面是一个kong的简单结构kong的基础结构包含upstream(负载均衡器)、target(目标机器)、service(流量入口)、route(引流规则)。流量如果符合route规则,就会引入到service,进而流入到绑定的upstream。再根据upstream配置的负载均衡策略,流入到健康的target。kong包含无数据库模式,是为了更方便运维管理。不过很多操作会被限制,所以这里还原创 2020-12-10 23:19:10 · 2036 阅读 · 1 评论 -
win10中安装centos7双系统
不能识别ntfs盘怎么处理。./configure make make install用fdisk -l 查看下分区表里ntfs盘都是什么盘。为这里在win10下的ntfs盘分别为sda1、sda2、sda3、sda5、sda6添加挂载在计算机下mnt文件下中新建几个文件夹分别用来挂在你的ntfs硬盘。这里我在mnt文件夹下新建了study、work、fun moun...原创 2018-05-11 09:57:45 · 31867 阅读 · 4 评论 -
k3s 部署, 使用注意事项
官方地址:https://rancher.com/docs/k3s/latest/en/环境配置官方给出的k3s配置要求如下:系统内核版本:Linux 3.10+ (CentOS 7, Debian 8/9, Ubuntu 14.04+)K3S Server端最低内存要求:512 MBK3S Agent端内存最低要求:75MB磁盘空间最低要求:200 MB支持的硬件架构:x86_6...原创 2019-10-29 11:23:48 · 10171 阅读 · 3 评论 -
docker使用填坑记录(修改无法启动容器, 拉取国外镜像)
docker学习笔记:修改无法启动的容器中的内容直接修改容器的文件所有的容器数据都存在/var/lib/docker/aufs/diff/路径下。比如:root@ubuntu:~# ls /var/lib/docker/aufs/diff/ -ltotal 176drwxr-xr-x 2 root root 4096 Mar 6 05:13 040bf8e0842564e26e62f...原创 2019-11-08 15:24:57 · 2063 阅读 · 0 评论 -
airflow时区问题
pip安装apache-airflow 的修改方式1、在airflow家目录下修改airflow.cfg,设置default_timezone = Asia/Shanghai2、进入airflow包的安装位置,也就是site-packages的位置,以下修改文件均为相对位置修改airflow/utils/timezone.py在 utc = pendulum.timezone(‘UTC...转载 2020-03-26 13:12:29 · 2849 阅读 · 0 评论