Kube

树莓派k8s集群安装监控prometheus

非 Y 不嫁゛ 提交于 2020-08-09 17:19:35
k8s集群上的监控首推prometheus,但如果按照x86架构k8s集群安装prometheus的方法直接在树莓派k8s集群上安装prometheus,适配的工作量比较大,不建议这么做。我推荐github上一个大神的作品 https://github.com/carlosedp/cluster-monitoring , 经反复验证,在树莓派k8s集群基本可用,这里我简单介绍一下安装过程。 安装准备 树莓派k8s集群:最好3节点,单节点也可以。 root@pi4-master01:~# kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME pi4-master01 Ready master 4d18h v1.15.10 192.168.5.18 <none> Ubuntu 20.04 LTS 5.4.0-1011-raspi docker://18.9.9 pi4-node01 Ready node 4d17h v1.15.10 192.168.5.19 <none> Ubuntu 20.04 LTS 5.4.0-1011-raspi docker://18.9.9 pi4-node02

从OpenKruise 用户疑问开始理解 K8s 资源更新机制

你说的曾经没有我的故事 提交于 2020-08-09 16:30:00
背景 OpenKruise 是阿里云开源的大规模应用自动化管理引擎,在功能上对标了 Kubernetes 原生的 Deployment / StatefulSet 等控制器,但 OpenKruise 提供了更多的增强功能如:优雅原地升级、发布优先级/打散策略、多可用区workload抽象管理、统一 sidecar 容器注入管理等,都是经历了阿里巴巴超大规模应用场景打磨出的核心能力。这些 feature 帮助我们应对更加多样化的部署环境和需求、为集群维护者和应用开发者带来更加灵活的部署发布组合策略。 目前在阿里巴巴内部云原生环境中,绝大部分应用都统一使用 OpenKruise 的能力做 Pod 部署、发布管理,而不少业界公司和阿里云上客户由于 K8s 原生 Deployment 等负载不能完全满足需求,也转而采用 OpenKruise 作为应用部署载体。 今天的分享文章就从一个阿里云上客户对接 OpenKruise 的疑问开始。这里还原一下这位同学的用法(以下 YAML 数据仅为 demo): 准备一份 Advanced StatefulSet 的 YAML 文件,并提交创建。如: yaml apiVersion: apps.kruise.io/v1alpha1 kind: StatefulSet metadata: name: sample spec: # ... template

一文了解 Kubernetes

北战南征 提交于 2020-08-09 16:25:45
K8s已经成为一线大厂分布式平台的标配技术。你是不是还在惆怅怎么掌握它?来这里,大型互联网公司一线工程师亲授,不来虚的,直接上手实战,3天时间带你搭建K8s平台,快速学会K8s,点击下方图片可了解培训详情。 上篇文章 我们着重讲解了 Docker,其实遗留了一个大问题。Docker 虽好用,但面对强大的集群,成千上万的容器,突然感觉不香了。 这时候就需要我们的主角 Kubernetes 上场了,先来了解一下 Kubernetes 的基本概念,后面再介绍实践,由浅入深步步为营。 关于 Kubernetes 的基本概念我们将会围绕如下七点展开: 一、Docker 的管理痛点 如果想要将 Docker 应用于庞大的业务实现,是存在困难的编排、管理和调度问题。于是,我们迫切需要一套管理系统,对 Docker 及容器进行更高级更灵活的管理。 Kubernetes 应运而生!Kubernetes,名词源于希腊语,意为「舵手」或「飞行员」。Google 在 2014 年开源了 Kubernetes 项目,建立在 Google 在大规模运行生产工作负载方面拥有十几年的经验的基础上,结合了社区中最好的想法和实践。 K8s 是 Kubernetes 的缩写,用 8 替代了 「ubernete」,下文我们将使用简称。 二、什么是 K8s? K8s 是一个可移植的、可扩展的开源平台

Tungsten Fabric入门宝典丨多编排器用法及配置

有些话、适合烂在心里 提交于 2020-08-09 14:44:47
Tungsten Fabric入门宝典系列文章,来自技术大牛倾囊相授的实践经验,由TF中文社区为您编译呈现,旨在帮助新手深入理解TF的运行、安装、集成、调试等全流程。如果您有相关经验或疑问,欢迎与我们互动,并与社区极客们进一步交流。更多TF技术文章,请点击公号底部按钮>学习>文章合集。 作者:Tatsuya Naganawa 译者:TF编译组 在多个编排器之间共享控制平面有很多好处,包括routing/bridging、DNS、security等。 下面我来描述每种情况的使用方法和配置。 K8s+OpenStack Kubernetes + OpenStack的组合已经涵盖并且运行良好。 https://github.com/Juniper/contrail-ansible-deployer/wiki/Deployment-Example:-Contrail-and-Kubernetes-and-Openstack 另外,Tungsten Fabric支持嵌套安装(nested installation)和非嵌套安装(non-nested installation),因此你可以选择其中一个选项。 https://github.com/Juniper/contrail-kubernetes-docs K8s+K8s 将多个Kubernetes集群添加到一个Tungsten

最全 Prometheus 踩坑集锦

拜拜、爱过 提交于 2020-08-09 13:35:39
点击上方“朱小厮的博客”,选择“ 设为星标” 后台回复" 书 ",获取 来源:22j.co/cfHw 监控系统的历史悠久,是一个很成熟的方向,而 Prometheus 作为新生代的开源监控系统,慢慢成为了云原生体系的事实标准,也证明了其设计很受欢迎。本文主要分享在 Prometheus 实践中遇到的一些问题和思考,如果你对 Kubernetes 监控体系或 Prometheus 的设计还不太了解,可以先看下容器监控系列[1]。 几点原则 监控是基础设施,目的是为了解决问题,不要只朝着大而全去做,尤其是不必要的指标采集,浪费人力和存储资源(To B商业产品例外)。 需要处理的告警才发出来,发出来的告警必须得到处理。 简单的架构就是最好的架构,业务系统都挂了,监控也不能挂。Google SRE 里面也说避免使用 Magic 系统,例如机器学习报警阈值、自动修复之类。这一点见仁见智吧,感觉很多公司都在搞智能 AI 运维。 Prometheus 的局限 Prometheus 是基于 Metric 的监控,不适用于日志(Logs)、事件(Event)、调用链(Tracing)。 Prometheus 默认是 Pull 模型,合理规划你的网络,尽量不要转发。 对于集群化和水平扩展,官方和社区都没有银弹,需要合理选择 Federate、Cortex、Thanos 等方案。

Dubbo-go k8s注册中心设计方案与实现

不想你离开。 提交于 2020-08-09 08:56:30
Dubbo-go k8s注册中心设计方案与实现 随着云原生的推广,越来越多的公司或组织将服务容器化,并将容器化后的服务部署在k8s集群中。 今天这篇文章将会介绍dubbo-go将k8s作为服务注册中心的方案设计,以及具体实现。到目前为止该方案的实现已经被合并到dubbo-go的master分支。具体实现为 关于Kubernetes的PullRequest 。 k8s管理资源的哲学 k8s作为容器集群化管理方案可以将管理资源的维度可主观的分为服务实例管理和服务接入管理。 服务实例管理,主要体现方式为Pod设计模式加控制器模式。控制器保证具有特定标签(Label)的Pod保持在恒定的数量(多删,少补)。 服务接入管理,主要为Service,该Service默认为具有特定标签(Label)的一批Pod提供一个VIP(ClusterIP)作为服务的接入点,默认会按照round-robin的负载均衡策略将请求转发到真正提供服务的Pod。并且CoreDNS为该Service提供集群内唯一的域名。 k8s服务发现模型 为了明确k8s在服务接入管理提供的解决方案,我们以kube-apiserver 提供的API(HTTPS)服务为例。k8s集群为该服务分配了一个集群内有效的ClusterIP,并通过CoreDNS为其分配了唯一的域名 kubernetes

Kubernetes生产环境的16条建议

孤街醉人 提交于 2020-08-09 02:57:26
  Kubernetes是用于构建高度可扩展系统的强大工具。结果,许多公司已经开始或正在计划使用它来协调生产服务。不幸的是,像大多数强大的技术一样,Kubernetes也很复杂。我们整理了以下清单,以帮助你生产环境最佳实践Kubernetes。   容器最佳实践   Kubernetes提供了一种编排容器化服务的方法,因此,如果您没有按顺序实践你的容器,那么集群一开始就不会处于良好状态。请按照以下提示开始。    1、使用精简基础镜像   what:容器是内置在系统镜像中的应用程序堆栈。从业务逻辑到内核的所有内容都打包在一起。最小的镜像会占用尽可能多的OS,并迫使您显式添加所需的任何组件。   why:仅在您的容器中包括要使用的软件,同时具有性能和安全性方面的好处。磁盘上的字节数更少,复制镜像的网络流量更少,并且潜在的攻击者无法访问的工具也更少。   how:Alpine Linux是一个流行的选择,并具有广泛的支持。    2 、使用提供最佳正常运行时间的注册表   what:注册表是镜像的存储库,使这些镜像可供下载和启动。在指定部署配置时,您需要指定从何处获取路径为 / :的镜像:      why:您的集群需要镜像去运行。   how:大多数云提供商都提供私有镜像注册表服务:Google提供Google容器注册表,AWS提供Amazon ECR

k8s中flannel:镜像下载不了

寵の児 提交于 2020-08-08 09:39:09
重新部署一套K8S集群时,由于K8S需要扁平化的网络,所以当执行下面的 root@master ~] # kubectl apply -f kube-flannel.yml 会开始下载镜像,然后去启动,结果等了几分钟,一直没有好 [root@k8s-master ~] # kubectl get pod -n kube-system NAME READY STATUS RESTARTS AGE coredns -58cc8c89f4-9gn5g 0/1 Pending 0 27m coredns -58cc8c89f4-xxzx7 0/1 Pending 0 27m etcd -k8s-master 1/1 Running 1 26m kube -apiserver-k8s-master 1/1 Running 1 26m kube -controller-manager-k8s-master 1/1 Running 1 26m kube -flannel-ds-amd64-2dqlf 0/1 Init:ImagePullBackOff 0 11m kube -proxy-rn98b 1/1 Running 1 27m kube -scheduler-k8s-master 1/1 Running 1 26m [root @k8s-master ~] # kubectl get

使用kubeadm安装Kubernetes

浪尽此生 提交于 2020-08-07 20:55:57
使用kubeadm安装Kubernetes Dlutzhangyi 2019-08-07 23:45:17 979 收藏 5 分类专栏: Kubernetes 版权 使用kubeadm安装Kubernetes 环境准备 基础配置 安装Docker 关闭防火墙 关闭SELinux 关闭swap 配置转发参数 配置Kubernetes阿里云源 安装Kubernetes相关组件 加载IPVS内核 安装Master节点 执行kubeadm init 失败 手动下载镜像 执行kubeadm init 配置网络 安装Node节点 下载镜像 添加Node节点 FAQ 执行kubeadm init显示kubelet not running 获取不到pods 参考 本次配置使用kubeadm安装Kubernetes,使用kubeadm init和kubeadm join两个命令可以很容易的初始化master节点和将node节点加入到master节点上。 环境准备 系统 版本 Kubernetes v1.15.1 Docker 18.06.1-ce Centos7 CentOS Linux release 7.1.1503 (Core) 节点 主机名 Roles 10.32.170.109 dx-ee-releng-webserver01 master 10.21.88.3 gh-ee-plus09

使用kubeadm安装k8s系统

一个人想着一个人 提交于 2020-08-07 19:03:32
各节点必须能上网,cpu个数要大于等于2 master 192.168.1.63 node1 192.168.1.62 node2 192.168.1.64 配置master 配置主机名互相解析 [root@master ~]#vim /etc/hosts 192.168.1.63 master.example.com master 192.168.1.62 node1.example.com node1 192.168.1.64 node2.example.com node2 关闭selinux [root@master ~]#vim /etc/selinux/config SELINUX=disabled [root@master ~]#setenforce 0 关闭防火墙 [root@master ~]#systemctl stop firewalld [root@master ~]#systemctl disable firewalld 准备yum源 [root@master ~]#cd /etc/yum.repos.d/ [root@master yum.repos.d]#wget http://mirrors.aliyun.com/repo/Centos-7.repo [root@master yum.repos.d]#wget https://mirrors