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


    在这里插入图片描述

    作为一个开发者,学无止境是我们的座右铭,前面学习了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
    1. 验证二进制文件 ,下载 kubectl 校验和文件:
    curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
    
    • 1
    1. 安装kubectl
    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
    
    • 1
    1. 查看kubectl版本
    kubectl version
    
    • 1

    安装minikube

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

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

    # 创建用户
    useradd -u 1024 -g docker 用户名
    # 设置用户密码
    passwd 密码
    # 切换用户
    su 用户名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 安装minikube
      直接使用启动命令,如果没有安装后自动进行下载安装
    minikube start
    
    • 1
    1. 查看版本
    minikube version
    
    • 1

    在这里插入图片描述

    如果启动失败,查看docker是否在运行状态,没有则启动docker

    docker start
    
    • 1

    如果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
    1. 异常情况
      如果下次再次启动minikube,无法成功启动并且控制台提示一下文字

    Exiting due to GUEST_START: Failed kubeconfig update: writing kubeconfig: Error creating directory: /etc/kubernetes: mkdir /etc/kubernetes: permission denied
    在这里插入图片描述
    原因:可能是k8s的环境变量被占用了
    解决方案:刷新配置

    unset KUBECONFIG
    
    • 1

    再次命令启动 minikube start 成功

    安装 minikub Dashboard 可视化管理

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

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

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

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

    在这里插入图片描述
    出现上面标签数据,说明启动成功了。

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

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

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

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

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

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

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

    公网ip+端口/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
    在这里插入图片描述


    后言

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

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

  • 相关阅读:
    运动哪种耳机好用,推荐五款适合运动的耳机分享
    kafka笔记(二):生产者-同步发送/异步发送/生产者分区/数据可靠性/数据去重/消息发送流程
    关于#人工智能#的问题:我想知道他下面这种遇到代码会换行并且会有一段我标红的代码是怎么实现的(语言-javascript)
    kerberos:介绍
    【刷题之路】LeetCode 面试题 03.02. 栈的最小值
    MES的发展历程及功能模块
    【关于Linux中----进程优先级、环境变量和进程地址空间】
    CF - B. Combinatorics Homework(思维)
    MarkDown语法——更好地写博客
    撞上元宇宙冷门新职业 我变年入百万打工人
  • 原文地址:https://blog.csdn.net/qq_39818325/article/details/126235735