7.1 Kubernetes 准备



1.k8s集群方案

k8s是Kubernetes的缩写(k和s之间有8个字母),其是一个自动的容器部署、管理工具;当我们部署容器时,服务器会有成千上万台,如果手动去控制无法完成,此时我们便需要自动的去帮助我们部署管理容器;Kubernetes是谷歌的开源工具,在开源前,谷歌已经使用了好几年,其稳定性已经得到充分的验证;

Kubernetes的集群安装搭建十分复杂,难度很高,所以在这种情况下,诞生了辅助的开源项目帮助我们安装集群,提供俩种模式可选:

  • 一键安装:会自动完成所有配置及安装;
  • 手动安装:安装步骤已经被整理好,只需要跟随步骤进行配置即可;(https://github.com/opsnull/follow-me-install-kubernetes-cluster)

a

使用三台物理机或VMware虚拟机(物理机内存需要16G以上)来搭建集群环境,一台主控服务器,两台工作节点服务器。

a

如果资源有限(物理机内存不足16G的)也可以去掉一个工作节点,使用两台服务器。

在集群中,如果我们想启动一个docker容器,会向主控服务器发送指令,主控服务器收到指令后会向工作节点发送指令,告诉工作节点在其节点上部署启动容器,此时,可以告诉多个工作节点启动部署多台容器;

主控服务器一般不运行容器,其作为控制服务器存在,控制工作节点服务器去部署启动容器;

2.集群安装准备

kubeasz项目极大的简化了k8s集群的安装过程,他提供的工具可以轻松安装和管理k8s集群。

2.1 虚拟机准备

首先克隆虚拟机,并命名为k1:
在这里插入图片描述

调整 VMware 虚拟机的内存和 cpu:

在这里插入图片描述

进入虚拟机修改ip地址:

./ip-static
ip:192.168.64.191

ifconfig

在这里插入图片描述

2.2 安装文件上传

使用mobaxterm连接虚拟机后,将我们准备的文件上传到对应目录下:
在这里插入图片描述

  • k8s\kubernetes\kubeasz-3.1.0\kubeasz 文件上传到 /etc/目录
  • k8s\kubernetes\kubeasz-3.1.0\ezdown 文件上传到 /root/目录
  • k8s\kubernetes\images.gz 文件上传到 /root/目录

2.3 安装环境初始化脚本工具

在主控服务器的主目录下,执行脚本工具 ezdown,添加脚本权限:

cd ~/

chmod +x ./ezdown

ls -l

完成后执行下面命令下载所需的所有离线文件,当文件已存在时,不会重复下载,并且其会帮助安装docker:

./ezdown -D

在这里插入图片描述

导入 docker 镜像,后面使用这些镜像用来测试 k8s:

docker load -i images.gz

docker images

在这里插入图片描述

可选下载离线系统包 (适用于无法使用yum/apt仓库情形)

./ezdown -P

上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz

/etc/kubeasz 				包含 kubeasz 版本为 ${release} 的发布代码
/etc/kubeasz/bin 			包含 k8s/etcd/docker/cni 等二进制文件
/etc/kubeasz/down 			包含集群安装时需要的离线容器镜像
/etc/kubeasz/down/packages 	包含集群安装时需要的系统基础软件

2.4 工作节点

此时,我们第一台主服务器就已经准备好了,然后我们克隆此虚拟机,命名为k2,k3并修改其IP地址:

  • k2 ip:192.168.64.192
  • k3 ip:192.168.64.193

k2、k3作为从节点存在,后续我们的操作都在k1中进行,k2、k3只要保证其是启动着的就可以了;

3.配置集群安装环境

3.1 启动 kubeasz 容器

./ezdown -S

在这里插入图片描述

3.2 设置参数允许离线安装

sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/kubeasz/example/config.yml 

3.3 配置免密登录其他服务器

我们主服务器会连接从服务器,在主服务器进行的操作也会自动连接从服务器进行操作,所以主服务器需要自动连接并操作从服务器,所以我们需要设置免密登录:

ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa

ssh-copy-id 192.168.64.191

ssh-copy-id 192.168.64.192

ssh-copy-id 192.168.64.193

在这里插入图片描述

完成后我们测试从191连接192:
在这里插入图片描述

可以看到,我们已经可以免密登录192服务器了,测试后可以通过exit命令退出192服务器;

3.4 创建集群配置方案

我们首先创建一个集群方案cs1:

cd /etc/kubeasz

chmod +x ezctl

./ezctl new cs1

在这里插入图片描述

集群方案可以配置多个,比如cs1方案我们配置一主俩从,dz2集群方案我们可以配置一主三从,启动时,可以根据我们配置的方案进行选择,来快速搭建集群;

3.5 配置服务器地址

vim /etc/kubeasz/clusters/cs1/hosts

-etcd:注册中心集群,我们这里启动三个服务,组成注册集群;

  • kube_master:主服务器,我们这里配置一台主服务器;

  • kube_node:工作节点,我们这里使用俩台服务器作为工作节点;
    a

    如果内存有限, 可以只部署两台服务器进行测试
    - 主服务器既作为控制节点, 又作为工作节点
    - 减少etcd服务数量
    a

修改完成后使用!wq命令保存修改内容并退出;

3.6 拍摄服务器快照

我们拍摄服务器快照作为备份,如果集群安装失败,可以进行回退后重新安装:
在这里插入图片描述

三台服务器均可以进行快照备份;当需要回退时,点击下方的恢复快照即可选择版本进行回退;

3.7 执行一键安装

cd /etc/kubeasz

./ezctl setup cs1 all

安装完成后结果如图;
在这里插入图片描述

4.其他配置

4.1 设置 kubectl 命令的别名

安装完成后,后续的命令都需要使用kubectl命令来执行,我们为了方便操作,这里给这个命令设置一个别名k

# 设置 kubectl 命令别名 k
echo "alias k='kubectl'" >> ~/.bashrc

# 使设置生效
source ~/.bashrc

4.2 配置自动补全

yum install -y bash-completion

source <(kubectl completion bash)

echo "source <(kubectl completion bash)" >> ~/.bashrc

source ~/.bashrc

在这里插入图片描述

4.3 验证安装

k get cs

在这里插入图片描述

4.4 查看节点服务器

其中no是node的缩写,此命令主要作为查看节点服务器的命令使用,可以查看节点服务器列表:

k get no

我们可以看到目前节点服务器均是就绪状态:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值