序
作为一个开发者,学无止境是我们的座右铭,前面学习了docker相关基础操作,现在来学习kubernetes的相关基础操作。测试同事说这是要抢运维的饭碗呀,其实不然,了解学习当前行业热门或者前沿的技术无可厚非,更何况我们后端开发人员,更多的技术储备在这内卷严重的行业更是必不可少的。
安装docker环境
可参考博主另一篇文章进行安装docker:安装docker环境
k8s是为容器服务而生的一个可移植容器的编排管理工具,所以得先安装docker容器环境
使用minikube实现单机版k8s(概念介绍)
- 使用minikube可以在单机环境下快速搭建可用的k8s集群
疑惑:可能有这样的疑惑为什么不是直接安装k8s呢,minikube相当于是k8s的一种实现,就犹如我们使用MQ发送队列消息一样,MQ技术有不同的厂商实现(rocketMQ、rabbitMQ、ActiveMQ)一个道理
- k8s-集群搭建的三种方式
kubeadm:
- 是一个工具,用于快速搭建kubernetes集群,目前应该是比较方便和推荐的,简单易用
- kubeadm是Kubernetes 1.4开始新增的特
- kubeadm init 以及 kubeadm join 这两个命令可以快速创建 kubernetes 集群
minikube:
- 一般用于本地开发、测试和学习,不能用于生产环境
- 是一个工具,minikube快速搭建一个运行在本地的单节点的Kubernetes
二进制包:
- 在官网下载相关的组件的二进制包,上面的两个是工具,可以快速搭建集群,也就是相当于用程序脚本帮我们装好了集群,前两者属于自动部署,简化部署操作,自动部署屏蔽了很多细节,使得对各个模块感知很少,遇到问题很难排查,如果手动安装,对kubernetes理解也会更全面。
- 目前生产环境的主流搭建方式,已在生产环境验证,kubeadm也可以搭建生产环境
安装kubectl
Kubectl使用Kubernetes API与集群进行交互,相当于是k8s的命令行工具
- 下载kubectl可执行安装文件
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
- 验证二进制文件 ,下载 kubectl 校验和文件:
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
- 安装kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
- 查看kubectl版本
kubectl version
安装minikube
- 安装minikube之前先创建一个用户
Minikube不允许使用root权限启动,需要创建一个非root账号再启动
# 创建用户
useradd -u 1024 -g docker 用户名
# 设置用户密码
passwd 密码
# 切换用户
su 用户名
- 安装minikube
直接使用启动命令,如果没有安装后自动进行下载安装
minikube start
- 查看版本
minikube version
如果启动失败,查看docker是否在运行状态,没有则启动docker
docker start
如果docker启动报错:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因:可能是上次服务器重启或者非正常退出了docker,导致找不到docker进程
解决方案:systemctl start docker.service
- 异常情况
如果下次再次启动minikube,无法成功启动并且控制台提示一下文字
Exiting due to GUEST_START: Failed kubeconfig update: writing kubeconfig: Error creating directory: /etc/kubernetes: mkdir /etc/kubernetes: permission denied
原因:可能是k8s的环境变量被占用了
解决方案:刷新配置unset KUBECONFIG
再次命令启动 minikube start 成功
安装 minikub Dashboard 可视化管理
Dashboard是基于网页的K8S用户界面。你可以使用Dashboard将容器应用部署到K8S集群中,也可以对容器应用排错,还能管理集群资源。
- 查看Minikube内置插件,默认情况下Dashboard插件未启用:
minikube addons list
- 启用Dashboard插件:
minikube addons enable dashboard
- 开启Dashboard:
minikube dashboard --url
本命令窗口不要退出关闭,单独再开一个窗口进行访问
curl http://127.0.0.1:35778/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
出现上面标签数据,说明启动成功了。
注:开启Dashboard默认情况下外部是不能访问的,只有服务器内才能访问,而我们需要用宿主机通过服务器公网ip加端口或者域名进行访问,并查看图形化界面
- 直接使用代理进行启动
kubectl proxy --port = 端口 --address='0.0.0.0' --disable-filter=true
也可不指定端口,默认端口8001
kubectl proxy --address='0.0.0.0' --disable-filter=true
注:端口记得去服务器控制台开放哦~~~
- 浏览器访问
注:上面的命令状态要一直保持不退出才能访问,退出就无法访问了
公网ip+端口/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
后言
k8s的安装告一段落了,后面学习的路还很长,一点一点的丰富自己的技能树吧~~~
参考链接:
k8s官方文档(中文文档,内容全并且翻译通俗易懂)
Linux安装搭建k8s简单学习
K8S太火了!花10分钟玩转它不香么?
k8s-集群搭建的三种方式和区别