kubernets集群从零搭建
前言:本文参考《kubernetes权威指南第5版》所写,对一些地方进行了润色,给大家踩掉了一些坑,方便了大家的环境搭建。
环境准备
采用Vmware workstation在本机中许你一个64位的Centos7虚拟机将作为学习环境。虚拟机采用NAT的网络模式以便连接外网,然后使用kubeadm快速安装一个kubernetes集群
最低配置:
集群规模为1~5个节点时,要求如下。
Master:至少1coreCPU和2GB内存。(推荐:4coreCPU和16GB内存)
node:至少1coreCPU和1GB内存。
一、环境预处理
1.1关闭防火墙
$ systemctl disable firewalld
$ systemctl stop firewalld
1.2禁用SELinux(修改文件/etc/sysconfig/selinx,将SELINUX=enforcing修改为SELINUX=disabled),让容器可以读取主机文件系统。随着Kubernetes对SELinux支持的增强,可以逐步启用SELinux机制。
1.3kubeadm还需要关闭Linux的swap系统交换分区,这可以通过swapoff -a 命令实现。
# 临时关闭
$ swapoff -a
# 永久关闭
# 编辑/etc/fstab文件,注释掉swap这行
二、使用kubeadm工具快速安装kubernetes集群(以centos7为例)
2.1首先配置yum源,这里使用aliyun的yum源。/etc/yum.repo/kubernetes.repo的内容如下
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
2.2然后运行yum install 命令安装kubeadm、kubelet和kubectl
$ yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
2.3kubeadm将使用kubelet服务以的容器方式部署和启动kubernetes的主要服务,所以需要先启动kubelet服务。运行systemctl start命令启动kubelet服务,并设置为开机自动启动。
$ systemctl start kubelet
$ systemctl enable kubelet
2.4运行kubeadm config print init-defaults命令,可以获得默认的初始化参数文件:
$ kubeadm config print init-defaults > init.default.yaml
可对生成的文件进行编辑,可以按需生成合适的配置。例如,如需要自定义镜像的仓库地址、需要安装kubernetes版本号及pod的IP地址范围。
将上面的内容保存为init-config.yaml备用。
2.5下载kubernetes的相关镜像
为了加快kubeadm创建集群的过程,可以预先将所需镜像下载完成。可以通过kubeadm config images list命令查看镜像列表,例如:
[root@k8s-master ~]# kubeadm config