前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此本教程会在部署的过程中穿插讲解一些部署相关知识.原理和步骤,比如kubeadm.kubelet以及启动集群时的实际部署动作等等.整个部署过程全部脚本化,以便各位参考和学习. 因整个集群部署教程篇幅较长,因此会拆分成几篇进行说明. 目录 使用Kubeadm创建k8s集群 Kubeadm概述  Kube…
前言 本篇部署教程将讲述k8s集群的节点(master和工作节点)部署,请先按照上一篇教程完成节点的准备.本篇教程中的操作全部使用脚本完成,并且对于某些情况(比如镜像拉取问题)还提供了多种解决方案.不过基于部署环境和k8s的复杂性,我们需要对k8s集群部署过程中的一些步骤都有所了解,尤其是“kubeadm init”命令. 目录 主节点部署  Kubeadm以及相关工具包的安装 批量拉取k8s相关镜像 使用“kubeadm init”启动k8s主节点 启动k8s主节点 kubectl认证 安装f…
基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我们就去搭建一个集群来感受一下.我这里搭建的一个Master 2个 Worker.尽量保持机器环境干净,我由于minikube没装好导致kubelet一直无法启动. 配置要求(官网推荐https://kubernetes.io/docs/setup/production-environment/too…
一 安装Docker-CE 前言 Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤. Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10. Docker 官网有安装步骤,本文只是记录一下,您也可以参考 Get Docker CE for CentOS 环境说明 CentOS 7(Minimal Install) $ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 准备工作 操作…
     前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for desktop中启用就可以了.但是我发现,启用了k8s后,Docker for desktop会消耗大量的系统资源,导致系统变得很慢.据说windows 上的WSL 2 性能不错,这次我尝试在WSL Linux上安装K8s并部署我们的微服务,看看还会不会出现系统资源消耗过大的情况.      关于网络:我用的是…
1.概述 本文档主要介绍如何在k8s集群中部署prometheus server用来作为监控的数据采集服务器,这样做可以很方便的对k8s集群中的指标.pod的.节点的指标进行采集和监控. 2.下载镜像并且上传到本地的habor 可以先将prometheus server的镜像下载并且导入到本地的镜像仓库中. 镜像版本信息 docker pull prom/prometheus:v2.33.1 3.节点添加标签 为了保证prometheus的数据可以在重启或者重新调度之后依然在一个主机上,可以考虑…
据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术. 最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数量的容器和工作负载.在积累了这么多年的经验后,Google 决定重写这个容器管理系统,并将其贡献到开源社区,让全世界都能受益. 这个项目就是 Kubernetes.简单的讲,Kubernetes 是 Google Omega 的开源版本. 从 2014 年第一个版本发布以来,Kubernetes 迅…
据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术. 最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数量的容器和工作负载.在积累了这么多年的经验后,Google 决定重写这个容器管理系统,并将其贡献到开源社区,让全世界都能受益. 这个项目就是 Kubernetes.简单的讲,Kubernetes 是 Google Omega 的开源版本. 从 2014 年第一个版本发布以来,Kubernetes 迅…
K8S集群安装部署   参考地址:https://www.cnblogs.com/xkops/p/6169034.html 1. 确保系统已经安装epel-release源 # yum -y install epel-release 2. 关闭防火墙服务和selinx,避免与docker容器的防火墙规则冲突 # systemctl stop firewalld # systemctl disable firewalld # setenforce 0 3. 安装配置Kubernetes Maste…
一.集群环境信息及安装前准备 部署前操作(集群内所有主机): .关闭防火墙,关闭selinux(生产环境按需关闭或打开) .同步服务器时间,选择公网ntpd服务器或者自建ntpd服务器 .关闭swap分区 .集群所有节点主机可以相互解析 .master对node节点ssh互信6.配置系统内核参数使流过网桥的流量也进入iptables/netfilter框架(如果报错,提示没有文件  modprobe br_netfilter 添加此模块) echo -e 'net.bridge.bridge-n…
1.准备 1.1系统配置 在安装之前,需要先做如下准备.三台CentOS主机如下: 配置yum源(使用腾讯云的) 替换之前先备份旧配置 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup centos各版本的源配置列表 centos5 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/…
kubeadm是K8s官方推荐的快速搭建K8s集群的方法. 环境: Ubuntu 16.04 1 安装docker Install Docker from Ubuntu’s repositories: apt-get update apt-get install -y docker.io or install Docker CE 17.03 from Docker’s repositories for Ubuntu or Debian: apt-get update apt-get instal…
一.k8s集群 1.k8s整体架构图 2.k8s网络架构图 二.基于kubeadm安装k8s步骤 1.master,nodes:安装kubelet,kubeadm,docker 2.master: kubeadm init 3.各nodes: kubeadm join 4.k8s有两种部署方案 a.采用传统的方式来部署k8s自身,让k8s自己的相关组件统统运行为系统级的守护进程,这包括master节点上的四个组件以及每个node节点上的三个组件都运行为系统级的守护进程,但是这个每一步都需要我们自…
最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考. 当然,所有方法都是看了log输出后,从网上搜索的方法. =============== Q,如何让kubeadm在安装过程中不联网? A:记得在kubeadm init过程中增加参数 --kubernetes-version=v1.7.0 Q,kubelet cgroup driver参数不一致…
自从开始在 kubernetes 集群中部署 nodelocaldns 以提高 dns 解析性能以来,一直被一个问题困扰,只要一部署 nodelocaldns ,在 coredns 中添加的 rewrite 与 hosts 配置(如下)就失效,很是郁闷. rewrite stop { name regex ([a-zA-Z0-9-]+)_([a-zA-Z0-9-]+)\.$ {1}-{2}.production.svc.cluster.local answer name ([a-zA-Z0-9-…
不可否认的是,OpenStack仍然是可行的云操作系统,并且被全世界许多互联服务提供商使用.而Rancher是业界最为广泛使用的Kubernetes管理平台,通过简洁直观的GUI集中管理企业IT中的多个Kubernetes集群.Rancher还提供用于应用程序开发的集成工具以及用于安全性和治理的强大的企业级功能.目前Rancher已有三亿核心镜像下载量.本文将使用Rancher在Openstack上创建一个Kubernetes集群. 本文中的设置是在teuto.net运营的Bielefeld的t…
安装kubeadm kubectl kubelet 对于Ubuntu/debian系统,添加阿里云k8s仓库key,非root用户需要加sudo apt-get update && apt-get install -y apt-transport-https curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 然后在/etc/apt/source.list末尾加一行 deb https…
一.环境 三台centos机器 二.软件及容器准备 1.安装docker环境 本例安装 docker-ce版本,repo源为docker-ce.repo文件,拷贝到 /etc/yum.repos.d下 yum install  -y  docker-ce 2.下载相关镜像 下载软件包 将所有软件下载至/data目录 # 链接:https://pan.baidu.com/s/13DlR1akNBCjib5VFaIjGTQ 密码:1l69 # 链接:https://pan.baidu.com/s/1…
环境说明: 节点类型     主机名  管理ip master          master   192.168.2.10 nodes            node1    192.168.2.11 nodes            node2    192.168.2.12 podSubnet: 10.244.0.0/16 serviceSubnet: 10.96.0.0/16 一.基础环境配置 1.主机名修改 2.关闭防火墙,修改selinux为disable 3./etc/hosts文…
参考:  http://docs.kubernetes.org.cn/459.html   https://blog.csdn.net/gui951753/article/details/83316976#_1   http://www.mamicode.com/info-detail-2544943.html   https://blog.csdn.net/nklinsirui/article/details/80581286#debian-ubuntu   https://cloud.ten…
作者|段超 来源|尔达 Erda 公众号 ​ 导读:Erda 作为一站式云原生 PaaS 平台,现已面向广大开发者完成 70w+ 核心代码全部开源!在 Erda 开源的同时,我们计划编写<基于 K8s 的云原生 PaaS 平台基础架构>系列文章,希望我们的一点经验可以帮助更多企业完善 PaaS 平台基础架构的建设. ​ 系列文章推荐: <系列好文 | Kubernetes 弃用 Docker,我们该何去何从?> <我可以减肥失败,但我的 Docker 镜像一定要瘦身成功!&g…
从网上我们看到的好多kubeadm 安装k8s 的时候都说需要下拉取镜像,然后修改,实际上 我们可以使用配置参数,快速的跳过墙的问题 说明: 基础镜像,我们仍然存在,拉取的问题,但是dockerhub 上已经包含了好多拉取好的,我们只需要拉取,统一命名 下就可以了,简单测试我使用了别人以及配置好的 index.docker.io/mirrorgooglecontainers 简单demo 准备coredns 镜像   默认上边的仓库没有处理coredns 的镜像,我拉取,本地处理了 docker…
使用云平台可以为组织提供丰富的好处.然而,不可否认的是,采用云可能会给 DevOps 团队带来压力.开发人员必须使用微服务以满足应用的可移植性,同时运营商管理了极其庞大的混合和多云部署.Istio 允许您连接.保护.控制和观测服务. 在较高的层次上,Istio 有助于降低这些部署的复杂性,并减轻开发团队的压力.它是一个完全开源的服务网格,可以透明地分层到现有的分布式应用程序上.它也是一个平台,包括允许它集成到任何日志记录平台.遥测或策略系统的 API.Istio 的多样化功能集使您能够成功高效地…
注:本文使用的Traefik为1.x的版本 在生产环境中,我们常常需要控制来自互联网的外部进入集群中,而这恰巧是Ingress的职责. Ingress的主要目的是将HTTP和HTTPS从集群外部暴露给该集群中运行的服务.这与Ingress控制如何将外部流量路由到集群有异曲同工之妙.接下来,我们举一个实际的例子来更清楚的说明Ingress的概念. 首先,想象一下在你的Kubernetes集群中有若干个微服务(小型应用程序之间彼此通信).这些服务能够在集群内部被访问,但我们想让我们的用户从集群外部也…
先决条件 为确保您有一个准备就绪的 Kubernetes 集群Rook,您可以按照这些说明进行操作. 为了配置 Ceph 存储集群,至少需要以下本地存储选项之一: 原始设备(无分区或格式化文件系统) 这需要lvm2在主机上安装.为了避免这种依赖性,您可以在磁盘上创建一个完整的磁盘分区(见下文) 原始分区(无格式化的文件系统) block模式下存储类可用的持久卷 部署 Rook Operator $ git clone --single-branch --branch release-1.7 ht…
1.初始化集群信息 这里我才用了两台虚拟机来搭建集群,一个master,一个node 角色 IP地址 组件 master 192.168.126.137 docker, kubectl, kubeadm, kubelet node1 192.168.126.138 docker, kubectl, kubeadm, kubelet 2.设置系统主机名以及host文件相互解析 hostnamectl set_hostname master hostnamectl set_hostname node…
docker安装 wget    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce systemctl start dockersystemctl enable docker 一:配置hosts文件 cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localho…
一.目标 操作系统:CentOS Linux release 7.6.1810 (Core) 安装软件: docker:18.06.3-ce 从v1.15.5升级到v1.16.15 当前版本: [root@master yum.repos.d]# kubectl get node -owide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master…
flatMapGroupsWithState的出现解决了什么问题: flatMapGroupsWithState的出现在spark structured streaming原因(从spark.2.2.0开始才开始支持): 1)可以实现agg函数: 2)就目前最新spark2.3.2版本来说在spark structured streming中依然不支持对dataset多次agg操作 ,而flatMapGroupsWithState可以替代agg的作用,同时它允许在sink为append模式下在a…
目录 部分常见问题处理 Coredns CrashLoopBackOff 导致无法成功添加工作节点的问题 添加工作节点时提示token过期 kubectl 执行命令报“The connection to the server localhost:8080 was refused” 网络组件flannel无法完成初始化 部分节点无法启动pod 最后 部分常见问题处理 结合我们上篇文章(链接:集群故障处理之处理思路以及听诊三板斧(三十三)的处理思路和手段,接下来我们就进行一些实践讲解. Coredn…