Ubuntu安装K8s
采用本地VM虚拟机方式安装,整体流程:
- 安装一台Ubuntu
- 修改可能需要的几个配置
- 安装基本的环境
- 克隆新的Node节点机器
- 主从节点配置K8s
- 主节点安装网络插件
- 验证集群
安装Ubuntu
我比较懒,所以可以参考别人的博客安装,说明两点:
- CPU和内存我豆是选择的4,这个根据自己电脑的配置量力而行.
- Ubuntu版本我是
20.04
,如果不一样,下面有些地方会有坑,不要直接复制命令
修改可能需要的几个配置
-
关闭交换分区
- 进入root管理员
su``su: Authentication failure
- 多数同学因为刚刚安装导致密码不知道,然后认证失败,所以要修改密码,执行命令,填写对应的密码(密码建议:123456)
sudo passwd root
- 再次进入root管理员,输入上一步的密码即可
su
- 关闭交换分区
swapoff -a
- 修改配置文件
vi /etc/fstab
注释掉这一行:前面加一个#
,保存退出
- 进入root管理员
-
关闭防火墙
直接暴力解决:开机禁止启动systemctl disable ufw
-
重启
reboot
安装基本的环境
-
Docker
可以参考菜鸟教程
这里再重复一下:# 安装 apt 依赖包,用于通过HTTPS来获取仓库: sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common # 添加 Docker 的官方 GPG 密钥: curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # 设置稳定版仓库 sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \ $(lsb_release -cs) \ stable" # 查看版本,可以不用执行 apt-cache madison docker-ce # 安装 apt-get install docker-ce=5:20.10.0~3-0~ubuntu-focal docker-ce-cli=5:20.10.0~3-0~ubuntu-focal containerd.io # 验证 docker -v
-
K8s基本配置
阿里云地址:kubernetes镜像
-
配置组件
apt-get update && apt-get install -y apt-transport-https
-
添加秘钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
-
添加源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF
-
更新
apt-get update
-
查看版本
apt-cache madison kubelet
-
安装K8s
apt install -y kubelet=1.18.0-00 kubeadm=1.18.0-00 kubectl=1.18.0-00
克隆新的Node节点机器
- 这里基本上是VM的操作:选择克隆,后面我选的是完整克隆
- 克隆完成,启动机器
主从节点配置K8s
我这里把原来的机器作为Master(132)节点,新克隆的机器作为Node(135)节点
-
主节点配置K8s
注意这里的192.168.171.132
这个IP是我的主节点的IP,要换成自己的!!!kubeadm init \ --apiserver-advertise-address=192.168.171.132 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.18.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16
这里是成功的截图,只截取了下半部分
主节点执行截图中的命令,这里最好不要直接复制,选择自己控制台打出的mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
-
从节点加入K8s
从节点执行加入的命令,这是在主节点的控制台打印出来的,不要直接复制代码!!!kubeadm join 192.168.171.132:6443 --token qost7c.w7bvapj2oej2gnvf --discovery-token-ca-cert-hash sha256:39cd3a28ca2aabaa20bf9918e4a06549d0f461e3973769d51e2eab8e2b33d550
我这里报错了,是因为克隆机器的问题导致的机器名称一样
临时解决办法:修改机器名hostnamectl set-hostname 135
删除临时的配置文件:rm -rf /etc/kubernetes/pki/ca.crt
处理好后再次执行
-
主节点查看
有两个节点了root@ubuntu:/# kubectl get node NAME STATUS ROLES AGE VERSION 135 NotReady <none> 13s v1.18.0 ubuntu NotReady master 17m v1.18.0
主节点安装网络插件
主节点查看可以看到两个节点都是NotReady
状态所以需要安装网络插件
主节点执行命令
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube- flannel.yml
稍后执行节点查看命令,节点全部是Ready
root@ubuntu:/# kubectl get node
NAME STATUS ROLES AGE VERSION
135 Ready <none> 33m v1.18.0
ubuntu Ready master 50m v1.18.0
验证集群
顺利完成
顺利完成,中介可能会踩一些我没有遇到的坑.遇到了也不要惊慌,谷歌和百度会帮助我们解决多数问题.同时这个集群自己多动手安装几次就熟悉了.
参考
- VMware Workstation 安装 Ubuntu-server-20.04_ChaITSimpleLove的博客-CSDN博客
- k8s注册节点出现kube-flannel-ds服务状态Init:0/1 - 坐公交也用券 - 博客园 (cnblogs.com)
- kubernetes镜像_kubernetes下载地址_kubernetes安装教程-阿里巴巴开源镜像站 (aliyun.com)
- Ubuntu Docker 安装 | 菜鸟教程 (runoob.com)