k8s安装过程

测试系统版本: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

  1. 根据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及以上)

准备工作

  1. 关闭swap分区
sudo vim /etc/fstab #注释掉swap一行
  1. 关闭防火墙
sudo ufw disable
  1. 设置桥接
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

开始

  1. 更新源
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
  1. 下载 Google Cloud 公共签名密钥:(如果不能翻墙,请参考下面“意外”模块,并跳过第三步)
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg  #需要科学上网
  1. 添加 Kubernetesapt存储库(如果第二步不成功,请略过该步,具体操作参考第二步括号内容
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
  1. 更新&安装
sudo apt-get update
apt-get install -y kubelet kubeadm kubectl --allow-unauthenticated
  1. 设置开机自启
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
遇到的问题:
  1. 由于上不了外网,init命令,需要配置阿里云镜像
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers
  1. 过程中出现以下失败,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
成功
  1. 出现以下代码表示你已经成功了
kubeadm join <master节点IP> --token rmpydo.pwa0jrmm95f634b1 \
	--discovery-token-ca-cert-hash sha256:c5ae29d3a0a0421d269b82059788f2cc878c1aed779ead4781794d63b9252d77 
  1. 配置master节点

    以上初始化命令成功后的输出指示中会给出如何配置master节点的指导,根据指导配置即可

  2. 配置网络

我们需要再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集群的状态获取并不是实时的,是有时间间隔的,所以有时候节点挂了,需要一段时间反应

后续工作

  1. 持久化存储
  2. 监控系统:普罗米修斯+Grafana
  3. 找个helm源(如果能翻墙就不需要了)
  4. 学习k8s的yaml文件规则,能够自己写yaml文件创建pod(建议学习)
  5. 尝试在集群中加入Windows的Node节点
  6. 学习相关命令操作(建议学习)

参考文档

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值