kubeadm安装Kubernetes1.15安装部署详解-Part 1

简介:

Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统。Kubernetes的目标旨在消除编排物理/虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。Kubernetes 也提供稳定、兼容的基础(平台),用于构建定制化的workflows 和更高级的自动化任务。 Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力。 Kubernetes 还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。

选择部署方式

公司业务环境在去年已经完成了全线容器化改造,并结合开源容器管理平台Rancher(v1.6)流畅运行,后面发现kubernetes 有要一统的江湖节奏。后面个人有时间逐步开始调研k8s集群,先从源码部署开始的,源码部署的时候个人使用了ansible,整个过程可谓一通折腾啊,踩了很多坑。网上倒是有不少批量自动化工具,鉴于我们现在准备用在生产环境,未来是要替换公司容器化生产环境,个人按照公司的业务常规服务器配置,重新组织了基于源码部署的ansible-playbook。可以完成一件部署一套多主高可用kubernetes集群,模块如下:

p1-nginx.yaml
p2-keepalived.yml
1-download-sofrware.yaml
2-creat-key.yaml
3-kernelup.yaml
4-basic.yml
5-copy-command.yml
6-etcd.yml
7-kubmaster.yaml
8-kubnode.yaml
9-flannel.yaml
10-coredns.yml
p1-nginx.yaml
p2-keepalived.yml

整个过程花费很多精力和时间,过程痛苦而漫长(O(∩_∩)O哈!),当然收获也很多。

关于使用源码部署:

如果个人想学习或者想了解一些配置细节可以用这种方法,但是最好不要自己写自动化这块,谈不上特别复杂,主要是使用批量部署工具部署分布集群,肯定要使用很对变量对路径、配置、权限进行规范,这块调试挺花时间的,另外如果再对集群部署不熟悉就更坑了。学习、了解直接手动敲一遍就行,先别把自动化的事情在初期就一起推进。另外老鸟就另说了,有时间可以折腾,毕竟自动化部署复杂集群效率还是挺高的。

使用kubeadm工具

在使用kubadm之前个人是倾向于源码部署的,后面再看关于k8s相关周边资料发现,官方对kubeadm安装部署推广力度挺大,新功能迭代也很快。另外还有一个重要因素就是k8s的新功能更新也挺快,新的功能、特性都可能面临配置的变更和参数的变化。还有k8s周边的组件dns、网络插件与k8s兼容和匹配都有约束,好多支持版本的特性只会写在官方发布的文档里面,以上种种都带来问题和坑。。。。。。

部署方式推荐:

总体考虑我推荐使用官方推荐工具部署,首先官方发布新版本前会进行自测和功能验证,兼容性问题基本可以避免,官网工具用户量也有保障,有问题解决的速度也快。未来跟随主版本升级也比较方便。省出来的时间可以多去思考公司业务如何在k8s上跑的更加流畅。

本次部署架构

节点角色介绍

[kub-master]        节点名称                部署服务
172.20.101.157 name=kubm-01  docker、keepalived、nginx、etcd、kube-apiserver、kube-controller-manager、kube-scheduler
172.20.101.164 name=kubm-02  docker、keepalived、nginx、etcd、kube-apiserver、kube-controller-manager、kube-scheduler
172.20.101.165 name=kubm-03  docker、keepalived、nginx、etcd、kube-apiserver、kube-controller-manager、kube-scheduler

[kub-node]
172.20.101.160 name=kubnode-01 kubelet、docker、kube_proxy
172.20.101.166 name=kubnode-02 kubelet、docker、kube_proxy
172.20.101.167 name=kubnode-03 kubelet、docker、kube_proxy

部署环境介绍

docker -v
Docker version 18.06.1-ce, build e68fc7a
kubeadm version

kubeadm version: &version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529",
GitTreeState:"clean", BuildDate:"2019-06-19T16:37:41Z",
 GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Kubernetes
VERSION   v1.15.0  
more /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) 
uname  -a
Linux kubm-01 4.20.10-1.el7.elrepo.x86_64 #1 SMP Fri Feb 15 08:52:17 EST 2019 x86_64 x86_64 x86_64 GNU/Linux
nginx -v
nginx version: nginx/1.16.0
keepalived -v
Keepalived v1.3.5 (03/19,2017), git commit v1.3.5-6-g6fa32f2

?### 配置部署
为了减小篇幅放到一个单独的文档。

https://blog.51cto.com/michaelkang/2413965

原文地址:https://blog.51cto.com/michaelkang/2413962

时间: 2024-08-28 15:30:16

kubeadm安装Kubernetes1.15安装部署详解-Part 1的相关文章

kubeadm安装Kubernetes1.15安装部署详解-Part 2

初始化群集并系统环境 (所有节点上进行如下操作) 注:在所有节点上进行如下操作 1.设置主机名hostname,管理节点设置主机名为 master .2.编辑 /etc/hosts 文件,添加域名解析.3.关闭防火墙.selinux和swap.4.配置内核参数,将桥接的IPv4流量传递到iptables的链5.配置国内yum源 yum install -y wget mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/

Nagios服务器端安装部署详解(1)

下载地址如下: http://sourceforge.net/projects/nagios/files/ 具体详细下载地址:http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.6.tar.gz 1 开始下载: wget http://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.0.6/nagios-4.0.6.tar.gz/download?us

win7配置免安装mysql5.6.19过程详解

本文主要介绍免安装配置mysql5.6.19的过程,整个过程中自己出现很多次失误,经过整理,现将一次可成功的过程记录下来,供大家参考. 准备 在mysq官网 http://dev.mysql.com/downloads/mysql/,下载最新稳定版本. 本文使用的mysql版本为5.6.19,因下载免安装版本,在页面选择"Windows (x86, 64-bit), ZIP Archive"[吐槽一下,越来越大了:217.2M] 解压 将下载的mysql.zip解压到E:\Develo

Linux安装Oracle JDK替换OpenJDK详解

Linux安装Oracle JDK替换OpenJDK详解 作者:旸仔发表于:2013-3-11分类:Linux 众所周知,由于Oracle公司的JDK的版权问题,大多数Linux发行版在安装时都会附带开源的无版权问题的OpenJDK,以支持某些 java程序软件.但是如果我们在Linux下做一些java语言的开发,很可能还是需要安装和使用Oracle公司的原版JDK(以下简称 “JDK”).如何安装JDK并替换掉OpenJDK呢?今天旸仔做一个详细的解答: 毋庸置疑,如果一个系统内同时存在一个以

codis-3.2.8集群部署详解

codis-3.2.8集群部署详解 一.概要 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表https://github.com/CodisLabs/codis/blob/release3.1/doc/unsupported_cmds.md), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的

SCCM TP4部署详解

SCCM TP4部署详解 在完成了前面复杂而漫长的准备工作后,我们离体验SCCM TP4的距离也越来越近了.在今天的博文当中我们会和大家分享如何部署SCCM TP4.SCCM部署前的准备工作显得非常麻烦,但是大家要知道越是功能强大的软件,其部署前期的准备工作也就自然越麻烦.也就是说我们现在索要部署的SCCM是一个强大的管理平台.软件分发,软硬件资产统计,操作系统部署,远程控制-.这些功能都需要大量的外围组件支撑.不过这对于工程师是好事,复杂的产品用户感到头疼,却是工程师大显身手的地方. 好了,废

【甘道夫】Hive 0.13.1 on Hadoop2.2.0 + Oracle10g部署详解

环境: hadoop2.2.0 hive0.13.1 Ubuntu 14.04 LTS java version "1.7.0_60" Oracle10g ***欢迎转载,请注明来源***    http://blog.csdn.net/u010967382/article/details/38709751 到以下地址下载安装包 http://mirrors.cnnic.cn/apache/hive/stable/apache-hive-0.13.1-bin.tar.gz 安装包解压到

lvs原理及安装部署详解(参考)

LVS安装使用详解 摘至:http://www.cnblogs.com/MacoLee/p/5856858.html 简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org. 现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个

Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)

注意! laravel/homestead box项目地址已经不再是原来的 https://atlas.hashicorp.com/laravel/boxes/homestead 而已经变更成 https://app.vagrantup.com/laravel/boxes/homestead 如果是刚刚接触Laravel的朋友,请直接按文中步骤操作.需要更新及重装的朋友们请注意使用第二个地址来进行文中操作. 虽然我通常习惯在Linux环境下工作,但对于一个从小就接触Windows的人来说,能够在