一、前言
有很多人写k8s部署的文章,作为新手的我看了以后感觉有一个通病,几乎所有人都是站在老手的角度来教学,很多细节一带而过,对于新手很不友好,包括我自己最开始接触的时候就连退出、保存、编辑这些命令都弄不明白。所以我决定自己写一篇完全适合小白的k8s部署教程,就算你0基础一样可以看懂,按照步骤就可以搭建好。
二、目标任务
部署图形化界面的k8s+图形化界面harbor+docker
三台管理节点+三台计算节点+一台镜像仓库(harbor)
三、准备工作
首先这个是需要联网的,不是离线版安装(因为离线版我还不会),其次你要有台虚拟机,做出多个客户机
1、服务器:我这里直接用7台虚拟机,三台管理节点+三台计算节点+一台镜像仓库 (全部为联网状态)
管理节点服务器命名为:guanlijiedian1、guanlijiedian2、guanlijiedian3
计算节点服务器命名为:jisuanjiedian1、jisuanjiedian2、jisuanjiedian3
镜像仓库服务器命名为:harbor
2、系统:全部为ubuntu(64位)22.04
3、文件:harbor安装包、docker安装包(可以找我要)
4、软件:xshell、CRT什么的都可以,推荐MobaXterm,因为它可以批量配置
5、简单了解它们之间的关系
+---------------------+
| 镜像仓库Harbor |
| (Docker Registry) |
+----------+----------+
|
| 推送镜像
|
+----------v----------+
| Kubernetes(k8s)|
| 管理节点 |
| (3 个) |
+----------+----------+
|
|
|
+-----------------------+------------------------+
| | |
+----------v----------+ +----------v----------+ +----------v----------+
| 计算节点1 | | 计算节点 2 | | 计算节点3 |
| (Docker Engine) | | (Docker Engine) | | (Docker Engine)|
| +--------------+ | | +--------------+ | | +--------------+ |
| | 容器1 | | | | 容器 1 | | | | 容器1 | |
| +--------------+ | | +--------------+ | | +--------------+ |
| | 容器 2 | | | | 容器 2 | | | | 容器2 | |
| +--------------+ | | +--------------+ | | +--------------+ |
+----------------------+ +----------------------+ +----------------------+
四、分别进入7台服务器
4.1 安装基础软件
ubuntu22.04新系统做好后设置root密码,在root账户下
vim、SSH、curl可能是用不了的,这里下载一下,如果有这步直接跳过
apt update //更新一下软件列表
apt install openssh-server**** //安装SSH****
sudo systemctl start ssh**** //手动开启SSH****
sudo systemctl enable ssh //SSH开机自启
apt install vim //安装vim
apt install curl //安装curl
4.2 开启root可以被SSH,修改主机名
vi /etc/ssh/sshd config
找到PermitRootLogin这个行,按a为编辑模式,以下进入文件后编辑都先按a,然后改成图片这样,后边是yes
修改好后先按esc退出编辑模式,按冒号:输入wq,保存
systemctl restart ssh //重启SSH
hostnamectl set-hostname jisuanjiedian1 //修改主机名为jisuanjiedian1
以此类推,其他几个服务器名字改为jisuanjiedian2-3、guanlijiedian1-3、harbor
*注意7台服务器都需要修改
4.3 SSH到k8s的6台服务器
关闭swap分区 vi /etc/fstab
最后一行swap注释掉,注释方法为:进入编辑模式,在最后一行第一位输入#,该行被注释掉,删除#就是取消注释,然后保存退出
swapoff -a//关闭所有的交换空间
4.4 安装依赖包
sudo apt install socat conntrack ebtables ipset -y
4.5 部署k8s(kubernetes)
注意,现在是安装k8s,它只需要放在一台服务器中,在三台管理节点中任意选择一台服务器,以下操作均在一台服务器上执行,下面图中所出现的计算机名可能是master01或者ceshi1等其他的,不要管那是我随便找的截图,主要看命令返回提示跟图片是否一致
4.6 下载kk安装工具
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | sh -
4.7 给kk授予执行权限
chmod +x kk
4.8 创建部署文件
./kk create config --with-kubernetes v1.26.15
编辑vi config-sample.yaml
进入配置文件后修改以下几处:hosts、etcd、control-plane、worker
hosts部分:name:6行分别写成6台k8s中服务器主机名,address跟internalAddress都修改为这6台服务区的IP地址,user 为服务器账户 root ,password为6台服务器密码
etcd、control-plane部分:两个都填写一模一样,名字是管理节点3台服务器主机名
worker部分:填写3台计算节点名字
internalLoadbalancer: haproxy 负载均衡器、单个管理节点注释internalLoadbalancer: haproxy 多个管理节点解除注释,以下图为标准
4.9 创建 Kubernetes 集群
./kk create cluster -f config-sample.yaml 等待部署完成,提示如下
输入yes下载镜像
5.0 部署管理界面
helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.2.tgz --debug --wait --set global.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks --set extension.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks
执行后需要等待一段时间,知道提示跟第二张图一模一样就部署成功了
部署成功后访问存放k8s服务器的ip+30880,进入管理页面,默认账户为admin/P@88w0rd
可以访问页面后
五、部署docker、harbor
5.1 进入第7台服务器,主机名为harbor那台,把准备还的harbor安装包跟docker安装包上传到服务器
找到存储两个安装包的文件夹,以我的为例,我创建了个harbor的文件夹,两个安装包都放了进去
解压docker
tar -zxvf docker-20.10.24 amd64.tgz 我的安装包名字就是docker-20.10.24 amd64.tgz,这个根据实际情况替换
5.2 复制解压的docker文件,启动docker
mv docker/* /usr/bin/
chmod -R +x /usr/bin/docker*
groupadd docker
5.3 编辑docker启动文件
vi /usr/lib/systemd/system/docker.service
粘贴下面所有配置文件
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
保存退出
5.4 配置镜像加速 (这步可有可无,不影响使用)
sudo mkdir -p /etc/docker //创建文件夹
cd /etc/docker //进入该文件夹
复制下面文件
tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://tyh2edm8.mirror.aliyuncs.com"] } EOF
参照图片的内容修改位置
LL查看目录下有damon.json表示成功
5.5 启动docker
systemctl daemon-reload
systemctl restart docker
5.6 安装docker-compose
上传docker-compose
mv docker-compose /usr/local/bin/
添加权限
chmod +x /usr/local/bin/docker-compose
Docker images //执行不报错说明启动成功
Docker ps //执行不报错说明启动成功
到这里docker安装完成
docker的常用命令
systemctl daemon-reload //立即生效
systemctl start docker //启动docker
systemctl stop docker //停止docker
systemctl restart docker //重启docker
systemctl enable docker //开机自启docker
六、安装harbor
它跟docker在同一台服务器下
6.1 跟解压docker安装包一样,到存放安装包的目录下
解压harbor
tar -zxvf harbor-offline-installer-v2.10.0.tgz
6.2
cd harbor //编辑配置文件
mv harbor.yml.tmpl harbor.yml 重命名文件
vi harbor.yaml 修改harbor.yaml配置文件
两处修改:修改hostname为本机IP地址(截图中没截到)、注释掉https部分,保存退出
6.3 到目录下开始安装harbor
./install.sh
提示成功如上图
登录地址为harbor服务器IP 账号:admin 密码:Harbor12345
版权归原作者 李时珍里皮 所有, 如有侵权,请联系我们删除。