.Docker网络模式 在讨论Kubernetes网络之前,让我们先来看一下Docker网络.Docker采用插件化的网络模式,默认提供bridge.host.none.overlay.maclan和Network plugins这几种网络模式,运行容器时可以通过–network参数设置具体使用那一种模式. bridge:这是Docker默认的网络驱动,此模式会为每一个容器分配Network Namespace和设置IP等,并将容器连接到一个虚拟网桥上.如果未指定网络驱动,这默认使用此驱动. h…
1.Docker网络模式 在讨论Kubernetes网络之前,让我们先来看一下Docker网络.Docker采用插件化的网络模式,默认提供bridge.host.none.overlay.maclan和Network plugins这几种网络模式,运行容器时可以通过–network参数设置具体使用那一种模式. bridge:这是Docker默认的网络驱动,此模式会为每一个容器分配Network Namespace和设置IP等,并将容器连接到一个虚拟网桥上.如果未指定网络驱动,这默认使用此驱动.…
基于k8s的集群稳定架构-转载 前言 我司的集群时刻处于崩溃的边缘,通过近三个月的掌握,发现我司的集群不稳定的原因有以下几点: 1.发版流程不稳定 2.缺少监控平台[最重要的原因] 3.缺少日志系统 4.极度缺少有关操作文档 5.请求路线不明朗 总的来看,问题的主要原因是缺少可预知的监控平台,总是等问题出现了才知道.次要的原因是服务器作用不明朗和发版流程的不稳定. 解决方案 发版流程不稳定 重构发版流程.业务全面k8s化,构建以kubernetes为核心的ci/cd流程. 发版流程 有关发版流程…
镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 实践环境 CentOS-7-x86_64-DVD-1810 Docker 19.03.9 Kubernetes version: v1.20.5 开始之前 1台Linux操作或更多,兼容运行deb,rpm 确保每台机器2G内存或以上 确保当控制面板的结点机,其CPU核数为双核或以上 确保集群中的所有机器网络互连 目标 安装一个Kubernetes集群控制面板 基于集群安装一个Pod networ以便集群之间可以相互通信 安装指导 安装Doc…
理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4):用户及权限管理 理解OpenShift(5):从 Docker Volume 到 OpenShift Persistent Volume 理解OpenShift(6):集中式日志处理 理解OpenShift(7):基于 Prometheus 的集群监控 ** 本文基于 OpenShift 3.11…
Kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,在2018年将进入GA状态,说明离生产环境中使用的距离越来越近了. 使用Kubeadm搭建Kubernetes集群本来是件很简单的事,但由于众所周知的原因,在中国大陆是无法访问 k8s.gcr.io的.这就使我们无法按照官方的教程来创建集群.而国内的教程参差不齐,大多也无法运行成功,我也是踩了很多坑,才部署成功,故在此分享出来. 准备 多台Ubuntu 1…
在kubernetes中,有HPA在需要的时候创建更多的pod实例.但万一所有的节点都满了,放不下更多pod了,怎么办?显然这个问题并不局限于Autoscaler创建新pod实例的场景.即便是手动创建pod,也可能碰到因为资源被已有pod使用殆尽,以至于没有节点能接收新pod的清况. 在这种情况下,需要删除一些已有的pod, 或者纵向缩容它们,抑或向集群中添加更多节点.如果Kubernetes集群运行在自建基础架构上,那得添加一台物理机,并将其加入集群.但如果集群运行于云端基础架构之上,添加新的…
1. 概述 老话说的好:努力学习,提高自己,让自己知道的比别人多,了解的别人多. 言归正传,之前我们聊了 Docker,随着业务的不断扩大,Docker 容器不断增多,物理机也不断增多,此时我们会发现,登录到每台机器去手工操作 Docker 是一件很麻烦的事情. 这时,我们需要一个好用的工具来管理 Docker,帮我们创建.运行.调整.销毁这些容器,帮我们监控哪个容器宕掉了,然后重新启动这个容器等等. kubernetes(k8s)就是一个很好的选择,今天我们先来聊聊 kubernetes(k8…
基于puppet分布式集群管理公有云多租户的架构浅谈 一.架构介绍   在此架构中,每个租户的业务集群部署一台puppet-master作为自己所在业务集群的puppet的主服务器,在每个业务集群所拥有的云主机上部署puppet-agent,定时向puppet-master进行汇报从而执行相应任务.foreman单独部署,接收每个业务集群中puppet-master收集到的puppet-agent服务器所报告的信息.foreman收集到的数据存至MySQL数据库中,并进行前端展示.其中mysql…
请读者务必保持环境一致 安装过程中需要下载所需系统包,请务必使所有节点连上互联网. 本次安装的集群节点信息 实验环境:VMware的虚拟机 IP地址 主机名 CPU 内存 192.168.77.133 k8s-m1 6核 6G 192.168.77.134 k8s-m2 6核 6G 192.168.77.135 k8s-m3 6核 6G 192.168.77.136 k8s-n1 6核 6G 192.168.77.137 k8s-n2 6核 6G 192.168.77.138 k8s-n3 6核…
上篇文章介绍了如何使用docker部署Ceph分布式存储集群,本篇在此基础之上,介绍如何基于Ceph分布式存储集群实现docker跨主机共享数据卷. 1.环境准备 在原来的环境基础之上,新增一台centos7虚拟机,用来做Ceph的客户端,如下: hostname ip 备注 node1 192.168.56.111 ceph.rbd客户端 1.1 在111上安装docker(略): 1.2 在111上安装ceph.rbd客户端: 首先,在111上添加ceph源 vim /etc/yum.rep…
从零开始:Mysql基于Amoeba的集群搭建 准备环境 1.mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 2.amoeba-mysql-binary-2.0.1-BETA.tar.gz 3.Centos7 下载安装配置运行 1.mysql安装 使用wget命令下载安装 //创建目录 mkdir /software/mysql cd /software/mysql wget https://dev.mysql.com/get/downloads/mysql…
在 Kubernetes 中部署 Redis 集群 在Kubernetes中部署Redis集群面临挑战,因为每个 Redis 实例都依赖于一个配置文件,该文件可以跟踪其他集群实例及其角色.为此,我们需要结合使用Kubernetes StatefulSets和PersistentVolumes. 克隆部署文件 git clone https://github.com/llmgo/redis-sts.git 创建 statefulset 类型资源 [root@node01 redis-sts]# c…
另一个结合harbor自动构建镜像的思路: 即code+baseimage一体的方案 - 程序员将代码提交到代码仓库gitlab - 钩子触发jenkins master启动一次构建 - jenkins master从k8s申请一个jenkins slave编译容器 - 在容器内编译完成以后,获得最终产物 - 将最终产物通过dockerfile生成生产部署镜像(这里省略了测试,其实部署镜像需要测试通过) - 将生产镜像推送到harbor镜像仓库 - jenkins slave生命周期结束,k8s…
本节内容: Kubernetes简介 环境信息 创建TLS加密通信的证书和密钥 下载和配置 kubectl(kubecontrol) 命令行工具 创建 kubeconfig 文件 创建高可用 etcd 集群 部署 kubernetes master节点 部署kubernetes node节点 安装和配置 kube-dns 插件 一.Kubernetes简介 Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的 开源版本,主要功能包括: 基于容器的应用部…
前言 我司的集群时刻处于崩溃的边缘,通过近三个月的掌握,发现我司的集群不稳定的原因有以下几点: 1.发版流程不稳定 2.缺少监控平台[最重要的原因] 3.缺少日志系统 4.极度缺少有关操作文档 5.请求路线不明朗 总的来看,问题的主要原因是缺少可预知的监控平台,总是等问题出现了才知道.次要的原因是服务器作用不明朗和发版流程的不稳定. 解决方案 发版流程不稳定 重构发版流程.业务全面k8s化,构建以kubernetes为核心的ci/cd流程. 发版流程 有关发版流程如下: 浅析:研发人员提交代码到…
文章转载自:https://i4t.com/5451.html 背景 Kubernetes 1.24新特性 从kubelet中移除dockershim,自1.20版本被弃用之后,dockershim组件终于在1.24的kubelet中被删除.从1.24开始,大家需要使用其他受到支持的运行时选项(例如containerd或CRI-O):如果您选择Docker Engine作为运行时,则需要使用cri-dockerd. 对于kubelet和containerd重要提示 在升级至1.24之前,请确认c…
目录 目标 准备 主机 软件 步骤 (1/4)安装 kubeadm, kubelet and kubectl (2/4)初始化master节点 (3/4) 安装网络插件 (4/4)加入其他节点 (可选)在非主节点上管理集群 (可选)映射API服务到本地 (可选)部署一个微服务 卸载集群 目标 在您的机器上建立一个安全的Kubernetes集群. 在集群里安装网络插件,以便应用之间可以相互通讯. 在集群上运行一个简单的微服务. 准备 主机 一台或多台运行Ubuntu 16.04+的主机. 最好选至…
下面使用kubeadm来创建k8s cluster1. 所有主机节点上都需要安装docker # sudo apt-get update # sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt…
手工搭建 Kubernetes 集群是一件很繁琐的事情,为了简化这些操作,就产生了很多安装配置工具,如 Kubeadm ,Kubespray,RKE 等组件,我最终选择了官方的 Kubeadm 主要是不同的 Kubernetes 版本都有一些差异,Kubeadm 更新与支持的会好一些.Kubeadm 是 Kubernetes 官方提供的快速安装和初始化 Kubernetes 集群的工具,目前的还处于孵化开发状态,跟随  Kubernetes 每个新版本的发布都会同步更新, 强烈建议先看下官方的文…
之前测试了离线环境下使用二进制方法安装配置Kubernetes集群的方法,安装的过程中听说 kubeadm 安装配置集群更加方便,因此试着折腾了一下.安装过程中,也有一些坑,相对来说操作上要比二进制方便一点,毕竟不用手工创建那么多的配置文件,但是对于了解Kubernetes的运作方式,可能不如二进制方式好.同时,因为kubeadm方式,很多集群依赖的组件都是以容器方式运行在Master节点上,感觉对于虚拟机资源的消耗要比二进制方式厉害. 0. kubeadm 介绍与准备工作 kubeadm is…
1.节点介绍         master      cluster-1      cluster-2      cluster-3 hostname        k8s-55      k8s-54        k8s-53        k8s-52    ip               10.2.49.55    10.2.49.54    10.2.49.53 10.2.49.52 2.配置网络,配置/etc/hosts     略过.... 3.安装kubernets sudo…
k8s是什么 Kubernetes简称为k8s,它是 Google 开源的容器集群管理系统.在 Docker 技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性.k8s是容器到容器云后的产物.但是k8s并不是万能,并不一定适合所有的云场景.官方有一段"What Kubernetes is not"的解释可能更有利我们的理解. Kubernetes 不是一个传统意义上,包罗万象的 PaaS (平台即服务) 系统.我们保…
环境介绍 角色 操作系统 IP 主机名 Docker版本 master,node CentOS 7.4 192.168.0.210 node210 17.11.0-ce node CentOS 7.4 192.168.0.211 node211 17.11.0-ce node CentOS 7.4 192.168.0.212 node212 17.11.0-ce 1.基础环境配置(所有服务器执行)a.SELinux关闭 sed -i 's#SELINUX=enforcing#SELINUX=di…
kubeadm介绍 kubeadm是Kubernetes项目自带的及集群构建工具,负责执行构建一个最小化的可用集群以及将其启动等的必要基本步骤,kubeadm是Kubernetes集群全生命周期的管理工具,可用于实现集群的部署.升级.降级及拆除.kubeadm部署Kubernetes集群是将大部分资源以pod的方式运行,例如(kube-proxy.kube-controller-manager.kube-scheduler.kube-apiserver.flannel)都是以pod方式运行. K…
环境准备 机器信息 主机名 操作系统 IP地址 K8sm-218 Centos 7.5-x86_64 172.17.0.218 k8s-219 Centos 7.5-x86_64 172.17.0.219 k8s-220 Centos 7.5-x86_64 172.17.0.220 关闭防火墙及selinux # systemctl stop firewalld # systemctl disable firewalld # setenforce 0 修改hosts 172.17.0.218 k…
目录 k8s网络CNI之flannel k8s网络通信模型 常见CNI插件(Container,Network,Interface) 插件通信一般的解决方案 网络插件的应用 Flannel插件 flannel原理说明 flannel配置参数 flannel初始配置 flannel后端实现原理 host-gw VxLAN k8s网络策略之canal canal安装 NetworkPolicy相关术语 kubectl explain networkpolicy.spec讲解: 实验 创建两个name…
一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepalived01 7.6.1810 172.27.34.28 / / v1.3.5 4C4G lvs-keepalived lvs-keepalived01 7.6.1810 172.27.34.29 / / v1.3.5 4C4G lvs-keepalived master01 7.6.1810 17…
写什么呢 前段时间使用 C# 写了个项目,使用 Kubernetes API Server,获取信息以及监控 Kubernetes 资源,然后结合 Neting 做 API 网关. 体验地址 http://neting.whuanle.cn:30080/ 账号 admin,密码 admin123 本篇文章主要介绍,如何通过 C# 开发基于 Kuberetes 的应用,实现获取 Kubernets 中各种资源的信息,以及实现 Conroller 的前提知识.而在下一篇中则会讲解如何实现 Conro…
文章目录 1.前情提要 2.环境准备 2.1.环境介绍 2.2.配置静态网络 2.3.配置ssh免密 2.4.批量开启模块以及创建文件 2.5.安装ansible 2.5.1.安装pip 2.5.2.安装ansible 2.6.下载kubeasz 2.7.配置chrony时间同步 2.8.修改docker.server.j2文件 2.9.配置ansible主机清单文件 3.安装并验证Kubernetes集群 3.1.安装Kubernetes集群 3.2.验证Kubernetes集群 关于如何获取…