前言

本系列文章旨在帮助对kubernetes没有什么搭建经验搬砖友人,有什么问题大家可以一起交流(文章最下有论坛地址,有疑问也可在论坛留言)。

 

一,kubernetes的安装方式

网上的安装方式大体分为两种:1,二进制包,源码安装;2,使用kubeadm方式进行安装;

我建议大家使用kubeadm的方式进行安装,为什么?

你既然来看我这篇文章,且读了前言还看到了这里,自然是对kubernetes不是很了解的砖友;

所以如果是使用源码安装的方式,多是推荐脚本安装方式;你必须先了解各个组件,还要系统的对kubernetes有系统的了解,尤其是在证书配置这块,费时;且安装过程中出现了异常,卡在某步骤,还不方便回滚也进行不下去;这种痛苦相信砖友在成长过程中类似的经验都深有体会,所以不推荐;

 

那kubeadm的安装方式有什么好处么?有,方便,各个组件证书可以帮你生成,想用自己的签发的证书只要提供ca即可;部署过程出了问题,直接reset;轻松加愉快;而且官方也推荐;

FAQ:

kubeadm支持集群、高可用的安装方式吗?   支持(今天写的文章是较简单的单台master方式部署)

linux什么系统都支持么? centos ubuntu还是别的都行,但是本文以centos为例,ubuntu懒得截图懒得写;

需要准备什么? 一台或者多台centos系统的虚机

 

1.1,使用kubeadm安装需要解决的问题(本篇文章只介绍单master安装,集群部署以后会说,大同小异)

kubernetes的安装,在天朝最大的问题,就是网络;镜像拉不下来是个大问题;

(如果你能科学上网,那看这里按着步骤做基本上都搞得定https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

大家不能科学上网,所以得先找好所需的kubeadm安装包和镜像(这是必须要解决的不能翻墙的问题)

我这里有kubernetes的1.9.0和1.10.5版的所需镜像;

部署的镜像与kubeadm的rpm包 https://pan.baidu.com/s/1eTWTXSI  密码: 6uma 感谢这位雷锋,如果过期,请到文章最下的论坛地址找我;

规划好虚机的角色:

可单台虚机即做master也做node;

也可多台master多台node;自己按需求规划就好;

 

所有角色虚机关闭swap selinux:
/etc/selinux/config   将SELINUX的值改为disabled;

echo "swapoff -a" >> /etc/rc.local

所有角色虚机修改以下系统参数:
sed -i '/ip_forward/ s/0/1/g' /etc/sysctl.conf 
sed -i '/tables/ s/0/1/g' /etc/sysctl.conf

 

1.2,开始部署所需组件

首先,在所有角色上使用yum命令部署docker, yum install -y docker就完事了,接着开启docker:systemctl start docker && systemctl enable docker;

注意:使用docker info查看Cgroup Driver的值;稍后会用到;

接下来,安装部署kubeadm、kubelet、kubectl;

将之前下载好的文件(1.9.0的版本)复制到所有角色的虚机中,cd到文件的路径执行以下操作:

rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm
rpm -ivh kubernetes-cni-0.6.0-0.x86_64.rpm  kubelet-1.9.9-9.x86_64.rpm
rpm -ivh kubectl-1.9.0-0.x86_64.rpm
rpm -ivh kubeadm-1.9.0-0.x86_64.rpm

执行完成,cd到下一级的docker_images文件夹;

执行   docker load -i 所有文件名; 将所有所需要的1.9.0的镜像导入到images;

需要部署其他版本的下载的可添加yum源

[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

安装自己想要的指定版本,阿里提供的源有所有kubernetes官方的相关组件版本;

至于所需的镜像如下,版本号前的都不变,根据kubernetes版本的不同对应的是末尾VX.XX.X,可在国内镜像站寻找这些镜像:

gcr.io/google_containers/kube-apiserver-amd64:v1.10.5
gcr.io/google_containers/kube-proxy-amd64:v1.10.5
gcr.io/google_containers/kube-scheduler-amd64:v1.10.5
gcr.io/google_containers/kube-controller-manager-amd64:v1.10.5
k8s.gcr.io/pause-amd64:3.1
quay.io/coreos/flannel:v0.9.1-amd64

 

检查 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf文件的KUBELET_CGROUP_ARGS的值是否和使用docker info查看Cgroup Driver的值一致;

如果不一致,将KUBELET_CGROUP_ARGS改成使用docker info查看Cgroup Driver的值;然后执行

systemctl daemon-reload重新载入配置文件;

启动kuebelet:   systemctl enable kubelet && systemctl start kubelet     

至此所有角色虚机的docker,kubeadm相关组件和镜像全部准备完成;

 

1.3,部署master

单机部署或者单台master 

可在唯一的master角色虚机上执行:   kubeadm init --kubernetes-version=v1.9.0 --pod-network-cidr=10.244.0.0/16

若1.3之前步骤都以准备无误,那正常是可以看到以下结果:

至此master部署完成;

1.4,部署node

在所有node角色虚机上执行上图中的最后一行;

若1.4之前步骤都以准备无误,那正常是可以看到以下结果:

至此node部署完成;

 

如有任何疑问,请移步来此发帖交流www.zaoxin88.com

Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐