美文网首页
安装k8s的一些坑和总结

安装k8s的一些坑和总结

作者: 经典对白 | 来源:发表于2020-04-28 10:47 被阅读0次

背景

今天装一台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/

相关文章

网友评论

      本文标题:安装k8s的一些坑和总结

      本文链接:https://www.haomeiwen.com/subject/aqloshtx.html