背景
今天装一台ubuntu server1.18.0的服务器,目的是搭建k8s的worker、nfs、docker和gitlab-runner,挂载一个大数据盘,最近开发把服务器撸残血了,要升级下环境
步骤一
挑选主机 10核20线程 e4650 v2 + 64G +256G 固态+4TB机械,
步骤二
准备好键盘、鼠标、vga线和显示器,开机检测
步骤三
登录路由器,绑定MAC+ip为192.168.0.146,或者直接修改静态IP地址 /etc/netplan/50-cloud-init.yaml
步骤四
碰到坑,安装的时候需要特地配置146,还有一个域名解析问题
vim /etc/resolv.conf
参考:Ubuntu18.04 永久修改DNS.note
添加.ssh密钥,从144拷贝过去
vim .ssh/authorized_keys
修改root可以登录
vim /etc/ssh/sshd_config
步骤五:安装docker
sudo apt install docker.io
最好参考:https://www.runoob.com/docker/ubuntu-docker-install.html
#配置/etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"insecure-registries": ["company-server:32000],
"registry-mirrors": ["https://bvp31fna.mirror.aliyuncs.com","https://registry.docker-cn.com"],
"data-root":"/data/lib/docker", // 转义导磁盘大户导数据盘
"live-restore": true //reload服务的时候并不会停止已运行的docker
}
#重启一下
sudo systemctl daemon-reload
sudo systemctl restart docker
步骤六:挂载数据盘
格式化磁盘
mkfs -t ext3 -c /dev/sdb
查看磁盘名
fdisk -l
挂载磁盘
mount /dev/vdb /data
步骤七:安装k8s(常规套路,注意指定版本即可)
# 使得 apt 支持 ssl 传输
apt-get update && apt-get install -y apt-transport-https
# 下载 gpg 密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
# 添加 k8s 镜像源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/ apt/ kubernetes-xenial main
EOF
# 更新源列表
apt-get update
# 下载 kubectl,kubeadm以及 kubelet
apt-get install -y kubelet=1.17.0-00 kubeadm=1.17.0-00 kubectl=1.17.0-00
步骤八:加入集群
第一步:修改kubelet的cgroup
cd /etc/systemd/system/kubelet.service.d 编辑修改在Environment后追加 --cgroup-driver=systemd
systemctl daemon-reload
systemctl restart kubelet
第二步:先在master节点执行
kubeadm token create --print-join-command
第三步:
复制第二步结果加入集群,然后再master会看到加入成功
步骤九:初始化nfs
apt install -y nfs-common
sudo mount -t nfs 192.168.0.144:/data/nfs/ /data/nfs/
步骤十:安装gitlab-runner(指定版本安装)
先下载最新的包
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
chmod +rx /usr/local/bin/gitlab-runner
sudo gitlab-runner install --user=gitlab-runner --working-directory=/data/gitlab-runner
过程碰到的坑
坑一:无法加入master集群
由于apt默认安装最新版本1.18.0,原本想法通过安装18的版本,然后把17的集群升级18,但是发现安装ubuntu20或者18的时候,根据官网的kubeadm安装的k8s,文件缺失 不管是加入集群或者是创建master节点 都异常,很莫名其妙,于是把版本降级导1.17.0,后续再根据二进制文件集体升级
通过指定版本号去解决此类问题,kubelet=1.17.0-00 这里有个坑 -00
另外要看apt源的版本号,原以为是1.17.0,其实根据下面链接源的packege版本才能真实指定
点击查看 https://mirrors.aliyun.com/kubernetes/apt/dists/kubernetes-xenial/
坑二:kubelet无法启动
#查看kubelet的错误日志
journalctl -xefu kubelet
发现是和docker的容器组不一致
另外没有systemctl的配置文件,创建/etc/systemd/system/kubelet.service.d/10-kubeadm.conf的,追加 --cgroup-driver=systemd即可
坑三:apt软件源无法读取问题
安装k8s时,出现错误:
E: Malformed entry 1 in list file /etc/apt/sources.list.d/kubernetes.list (absolute Suite Component)
E: The list of sources could not be read.
这应该和安装docker的时候指定了源库存有一定关系
参考:https://www.codeleading.com/article/99871831568/
总结
参考资料
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/









网友评论