【云原生-k8s】Linux服务器搭建单机版kubernetes服务

【云原生-k8s】Linux服务器搭建单机版kubernetes服务_第1张图片

作为一个开发者,学无止境是我们的座右铭,前面学习了docker相关基础操作,现在来学习kubernetes的相关基础操作。测试同事说这是要抢运维的饭碗呀,其实不然,了解学习当前行业热门或者前沿的技术无可厚非,更何况我们后端开发人员,更多的技术储备在这内卷严重的行业更是必不可少的。

安装docker环境

可参考博主另一篇文章进行安装docker:安装docker环境

k8s是为容器服务而生的一个可移植容器的编排管理工具,所以得先安装docker容器环境

使用minikube实现单机版k8s(概念介绍)

  1. 使用minikube可以在单机环境下快速搭建可用的k8s集群

疑惑:可能有这样的疑惑为什么不是直接安装k8s呢,minikube相当于是k8s的一种实现,就犹如我们使用MQ发送队列消息一样,MQ技术有不同的厂商实现(rocketMQ、rabbitMQ、ActiveMQ)一个道理

  1. k8s-集群搭建的三种方式

kubeadm:

  • 是一个工具,用于快速搭建kubernetes集群,目前应该是比较方便和推荐的,简单易用
  • kubeadm是Kubernetes 1.4开始新增的特
  • kubeadm init 以及 kubeadm join 这两个命令可以快速创建 kubernetes 集群

minikube:

  • 一般用于本地开发、测试和学习,不能用于生产环境
  • 是一个工具,minikube快速搭建一个运行在本地的单节点的Kubernetes

二进制包:

  • 在官网下载相关的组件的二进制包,上面的两个是工具,可以快速搭建集群,也就是相当于用程序脚本帮我们装好了集群,前两者属于自动部署,简化部署操作,自动部署屏蔽了很多细节,使得对各个模块感知很少,遇到问题很难排查,如果手动安装,对kubernetes理解也会更全面。
  • 目前生产环境的主流搭建方式,已在生产环境验证,kubeadm也可以搭建生产环境

安装kubectl

Kubectl使用Kubernetes API与集群进行交互,相当于是k8s的命令行工具

  1. 下载kubectl可执行安装文件
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  1. 验证二进制文件 ,下载 kubectl 校验和文件:
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
  1. 安装kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
  1. 查看kubectl版本
kubectl version

安装minikube

  1. 安装minikube之前先创建一个用户

Minikube不允许使用root权限启动,需要创建一个非root账号再启动

# 创建用户
useradd -u 1024 -g docker 用户名
# 设置用户密码
passwd 密码
# 切换用户
su 用户名
  1. 安装minikube
    直接使用启动命令,如果没有安装后自动进行下载安装
minikube start
  1. 查看版本
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
  1. 异常情况
    如果下次再次启动minikube,无法成功启动并且控制台提示一下文字

Exiting due to GUEST_START: Failed kubeconfig update: writing kubeconfig: Error creating directory: /etc/kubernetes: mkdir /etc/kubernetes: permission denied
【云原生-k8s】Linux服务器搭建单机版kubernetes服务_第2张图片
原因:可能是k8s的环境变量被占用了
解决方案:刷新配置

unset KUBECONFIG

再次命令启动 minikube start 成功

安装 minikub Dashboard 可视化管理

Dashboard是基于网页的K8S用户界面。你可以使用Dashboard将容器应用部署到K8S集群中,也可以对容器应用排错,还能管理集群资源。

  1. 查看Minikube内置插件,默认情况下Dashboard插件未启用:
minikube addons list
  1. 启用Dashboard插件:
minikube addons enable dashboard
  1. 开启Dashboard:
minikube dashboard --url

在这里插入图片描述
本命令窗口不要退出关闭,单独再开一个窗口进行访问

 curl http://127.0.0.1:35778/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

【云原生-k8s】Linux服务器搭建单机版kubernetes服务_第3张图片
出现上面标签数据,说明启动成功了。

:开启Dashboard默认情况下外部是不能访问的,只有服务器内才能访问,而我们需要用宿主机通过服务器公网ip加端口或者域名进行访问,并查看图形化界面

  1. 直接使用代理进行启动
kubectl proxy --port = 端口 --address='0.0.0.0' --disable-filter=true

也可不指定端口,默认端口8001

kubectl proxy --address='0.0.0.0' --disable-filter=true

注:端口记得去服务器控制台开放哦~~~

  1. 浏览器访问
    在这里插入图片描述

注:上面的命令状态要一直保持不退出才能访问,退出就无法访问了

公网ip+端口/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
【云原生-k8s】Linux服务器搭建单机版kubernetes服务_第4张图片


后言

k8s的安装告一段落了,后面学习的路还很长,一点一点的丰富自己的技能树吧~~~

参考链接:
k8s官方文档(中文文档,内容全并且翻译通俗易懂)
Linux安装搭建k8s简单学习
K8S太火了!花10分钟玩转它不香么?
k8s-集群搭建的三种方式和区别

你可能感兴趣的:(云原生,kubernetes,云原生,服务器)