【kubernetes】史上最简单的k8s安装教程,一键安装

15,994 阅读4分钟

「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战

导读:安装是学习k8s的第一大难关,我曾因为安装问题而放弃学习好几次。因此,我不希望安装成为大家学习k8s的绊脚石。so ,我把自己的经验整理成了一个shell脚本,真正实现了一键安装。再也不用为安装k8s而头疼了!废话不多说,下面开始实操。

重要提醒:如果你打算安心学习k8s的话,有两个问题需要自己克服一下

  1. 机器配置。k8s对机器配置要求较高,特别是对于我们学习的话,一般都是在本机的虚拟机中安装。无疑,对机器配置就更高了。建议 宿主机内存>=8G。
  2. 网络问题。k8s很多东西都在国外网站,对于国内用户来说很痛苦。所以你懂得(^▽^),最好能访问谷歌。有困难的小伙伴可以联系我。

特别说明:本教程中的安装方式仅供学习使用,不建议生产环境使用。

1. kubernetes部署环境要求

  • 一台或多台机器,操作系统CentOS7.x-86_x64
  • 硬件配置:内存2GB或2G+,CPU 2核或CPU 2核+
  • 集群内各个机器之间能相互通信
  • 集群内各个机器可以访问外网,需要拉取镜像
  • 禁止swap分区

2. 安装k8s

2.1 安装步骤

  • 下载安装脚本install_k8s.sh
  • 上传到待安装机器,并分配执行权限chmod +x install_k8s.sh
  • 执行脚本sh install_k8s.sh 安装步骤就是这么简单,so easy ^_^

2.2 安装过程说明

  • 第一步安装docker
  • 第二部安装docker-compose
  • 第三部安装k8s 安装会有交互过程,建议不要离开。交互如下:
  • 询问是否安装docker(如果已经安装过,可以选择no) image.png
  • 询问是否安装docker-compose(非必须步骤,可以选择no,另外docker-compose经常由于网络问题安装失败)
    image.png
  • 询问是否安装k8s
    image.png
  • 填写k8s的master ip地址,其实就是当前安装机器的ip地址
    image.png

说明:

  1. 脚本可以重复执行
  2. 若安装过程出现错误,可以查看文章最下面的FAQ。如果FAQ中没有您遇到的问题,那么欢迎在文章中评论留言,我会抽时间查看解决。
  3. 安装日志文件在/var/log/install_k8s.log,安装日志中有node join命令,如下:
    将join命令拷贝到node机器执行,加入到k8s集群中。附上一份我的安装日志:install_k8s.log image.png

2.3 安装验证

  • 验证docker是否安装成功docker -v
  • 验证docker-compose是否安装成功docker-compose -v
  • 验证k8s是否安装成功kubectl get nodes
  • image.png 脚本中已经做了去污点[通过kubeadmin部署k8s,默认master上是不能被调度pod的,去污点就是在master上也可以被调度pod]
    等待一会后,再通过kubectl get nodes查看,master状态已经正常了。
    image.png
    接下来,开始愉快的玩耍吧!O(∩_∩)O哈哈~

3. 小试牛刀

我们先来部署下nginx,看下刚刚部署的环境是否正常。

  • 启动nginx pod kubectl run nginx-pod --image=nginx
  • 查看pod kubectl get pod -o wide
    image.png
  • 访问pod curl 10.244.0.4。此时只能通过上面的cluster-ip访问 image.png
  • 将pod暴露成service kubectl expose pod nginx-pod --type=NodePort --port=80
  • 查看service kubectl get svc。此时在宿主机上映射一个随机端口,如下: image.png
  • 此时nginx-pod就暴露到外网了,可以通过 curl localhost:31493访问[这里端口你的可能跟我的不一样]。

ok,到这里,基本上可以宣告您的k8s已经成功搭建!惊不惊喜O(∩_∩)O哈哈~

4. 总结

总结下来,整个安装步骤主要如下:

  1. 准备机器(cpu>2c 内存>2G 操作系统>Centos7)
  2. 保证网络畅通(最好能访问谷歌)
  3. 下载安装脚本
  4. 上传到服务器,然后执行 整个过程可以说是简单的不能再简单了。 ̄□ ̄||

5. FAQ

Q: [ERROR FileContent--proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1 image.png A: 执行 sysctl -w net.ipv4.ip_forward=1

如安装遇到问题,欢迎反馈(^▽^)