测试系统版本:Ubuntu18.04
第一步
卸载老版本docker
#删除某软件,及其安装时自动安装的所有包
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
#删除docker其他没有没有卸载
dpkg -l | grep docker
#删除无用的相关的配置文件
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
#卸载没有删除的docker相关插件(结合自己电脑的实际情况)
sudo apt-get autoremove docker-ce-*
#删除docker的相关配置&目录
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
#检查是否删除成功
docker --version
安装docker
- 根据docker官方指导安装docker
#开始设置安装
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
深度学习要用到显卡的话,可能还需要安装docker-nvidia插件
引入nvidia-docker源:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
更新apt
apt-get update
安装
sudo apt-get install nvidia-docker2
sudo systemctl restart docker
第二步
安装K8s(Ubuntu18.04及以上)
准备工作
- 关闭swap分区
sudo vim /etc/fstab #注释掉swap一行
- 关闭防火墙
sudo ufw disable
- 设置桥接
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
开始
- 更新源
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
- 下载 Google Cloud 公共签名密钥:(如果不能翻墙,请参考下面“意外”模块,并跳过第三步)
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg #需要科学上网
- 添加 Kubernetes
apt
存储库(如果第二步不成功,请略过该步,具体操作参考第二步括号内容)
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
- 更新&安装
sudo apt-get update
apt-get install -y kubelet kubeadm kubectl --allow-unauthenticated
- 设置开机自启
systemctl enable kubelet
意外
可能很多机子没法科学上网,无法下载k8s的组件
所以这边使用阿里的镜像源安装
打开/etc/apt/sources.list
文件 ,添加一句。然后apt-get update
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
如果出现
The following signatures couldn't be verified because the public key is not available
则使用下面命令添加key
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add
初始化master节点
注意:命令行中所有的<主节点IP>都替代为你自己master节点的IP(包括尖括号)
kubeadm init --apiserver-advertise-address=<主节点IP> --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
遇到的问题:
- 由于上不了外网,init命令,需要配置阿里云镜像
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers
- 过程中出现以下失败,docker 与 kubelet配置冲突
[kubelet-check] It seems like the kubelet isn't running or healthy.
解决,这是docker与kubelet冲突所致,修改以下文件
/etc/docker/daemon.json
#添加,保存
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
#重启docker
systemctl restart docker
成功
- 出现以下代码表示你已经成功了
kubeadm join <master节点IP> --token rmpydo.pwa0jrmm95f634b1 \
--discovery-token-ca-cert-hash sha256:c5ae29d3a0a0421d269b82059788f2cc878c1aed779ead4781794d63b9252d77
-
配置master节点
以上初始化命令成功后的输出指示中会给出如何配置master节点的指导,根据指导配置即可
-
配置网络
我们需要再master节点上配置网络,不然节点状态会显示NotReady
使用如下命令
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
如果无法翻墙获取,自己找台能上外网的机器,登录上面网址赋值yml文件内容
创建yml文件,然后粘贴上述复制内容
kubectl create -f kube-flannel.yml
运行yml文件
kubectl apply -f kube-flannel.yml
注意:etcd集群的状态获取并不是实时的,是有时间间隔的,所以有时候节点挂了,需要一段时间反应
后续工作
- 持久化存储
- 监控系统:普罗米修斯+Grafana
- 找个helm源(如果能翻墙就不需要了)
- 学习k8s的yaml文件规则,能够自己写yaml文件创建pod(建议学习)
- 尝试在集群中加入Windows的Node节点
- 学习相关命令操作(建议学习)
参考文档
docker官方Linux文档:https://docs.docker.com/engine/install/ubuntu/
k8s官方Linux文档:https://kubernetes.io/zh/docs/setup/
《在 Ubuntu 上安装 K8S教程》:https://www.cnblogs.com/whuanle/p/12260471.html