• 【Kubernetes 系列】Kubernetes 创建K8s集群项目


    作者:半身风雪
    上一节:Kubernetes 概述



    一、创建Minikube

    1. 上一节我们一起安装了Minikube 集群,接下来我们可以在Docker 控制面板中启动,也可以直接使用命令启动

    minikube start

    如果这里报错: /etc/kubernetes: mkdir /etc/kubernetes: permission denied

    ❌ Exiting due to GUEST_START: Failed kubeconfig update: writing kubeconfig: Error creating directory: /etc/kubernetes: mkdir /etc/kubernetes: permission denied

    原因:$KUBECONFIG 变量被占用了

    解决:重置$KUBECONFIG 变量

    unset KUBECONFIG

    强制使用root 身份执行:

    minikube start --force --driver=docker

    😄 Darwin 12.1 上的 minikube v1.26.0 ❗ minikube skips various
    validations when --force is supplied; this may lead to unexpected
    behavior 🆕 Kubernetes 1.24.1 is now available. If you would like to
    upgrade, specify: --kubernetes-version=v1.24.1 ✨ 根据现有的配置文件使用 docker
    驱动程序 👍 Starting control plane node minikube in cluster minikube 🚜
    Pulling base image …
    > index.docker.io/kicbase/sta…: 0 B [_____________________] ?% ? p/s 2m7s 🏃 Updating the running docker “minikube” container … 🐳
    正在 Docker 20.10.12 中准备 Kubernetes v1.23.3…
    ▪ kubelet.housekeeping-interval=5m 🔎 Verifying Kubernetes components…
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
    ▪ Using image kubernetesui/dashboard:v2.6.0
    ▪ Using image kubernetesui/metrics-scraper:v1.0.8 🌟 Enabled addons: storage-provisioner, default-storageclass, dashboard 🏄 Done!
    kubectl is now configured to use “minikube” cluster and “default”
    namespace by default

    1. 在浏览器中打开 Kubernetes 仪表板(Dashboard)

    minikube dashboard

    运行之后,会为我们打开一个Web 浏览器界面

    在这里插入图片描述

    在这里,我们可以在仪表板上创建 Kubernetes 资源,例如 Deployment 和 Service。

    二、创建Deployment

    1. 使用 kubectl create 命令创建管理 Pod 的 Deployment。

    kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4

    1. 查看 Deployment

    kubectl get deployments

    输出结果:

    NAME READY UP-TO-DATE AVAILABLE AGE
    hello-node 0/1 1 0 23s

    1. 查看 Pod

    kubectl get pods

    输出结果:

    NAME READY STATUS RESTARTS AGE
    hello-node-6b89d599b9-6bbjk 1/1 Running 0 4m54s

    1. 查看集群事件:

    kubectl get events

    这里会输出集群的所有事件

    在这里插入图片描述

    1. 查看 kubectl 配置:

    kubectl config view

    kubectl 输出当前的所有配置
    在这里插入图片描述

    三、创建 Service

    1. 使用 kubectl expose 命令将 Pod 暴露给公网:

    kubectl expose deployment hello-node --type=LoadBalancer --port=8080

    这里的 --type=LoadBalancer 参数表明你希望将你的 Service 暴露到集群外部。

    输出结果:

    service/hello-node exposed

    镜像 k8s.gcr.io/echoserver 中的应用程序代码仅监听 TCP 8080 端口。 如果你用 kubectl expose 暴露了其它的端口,客户端将不能访问其它端口。

    1. 查看你创建的 Service:

    kubectl get services

    输出结果:

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    hello-node LoadBalancer 10.107.63.235 8080:31848/TCP 42s
    kubernetes ClusterIP 10.96.0.1 443/TCP 41m

    对于支持负载均衡器的云服务平台而言,平台将提供一个外部 IP 来访问该服务。 在 Minikube 上,LoadBalancer 使得服务可以通过命令 minikube service 访问。

    1. 运行下面的命令:

    minikube service hello-node

    运行输出结果:

    |-----------|------------|-------------|---------------------------| |
    NAMESPACE | NAME | TARGET PORT | URL |
    |-----------|------------|-------------|---------------------------| |

    defaulthello-node8080http://192.168.49.2:31848
    🏃 Starting tunnel for service hello-node.
    ------------------------------------------------------------
    NAMESPACENAMETARGET PORTURL
    ------------------------------------------------------------
    defaulthello-nodehttp://127.0.0.1:52309
    ------------------------------------------------------------
    正通过默认浏览器打开服务 default/hello-node… ❗ Because you are using a Docker
    driver on darwin, the terminal needs to be open to run it.

    并且浏览器会为我们打开当前应用程序服务页面

    在这里插入图片描述

    四、启用插件

    1. 使用 minikube addons list 查看当前所有支持的插件

    在这里插入图片描述

    1. 启动一个插件 minikube addons enable metrics-server

    启动成功会有提示

    ▪ Using image k8s.gcr.io/metrics-server/metrics-server:v0.6.1 
    🌟  启动 'metrics-server' 插件
    
    • 1
    • 2
    1. 使用 kubectl get pod,svc -n kube-system 命令,查看创建的 Pod 和 Service

    2. 也可以使用 minikube addons disable metrics-server 命令来禁用插件

    五、删除集群

    1. 上面我完成了创建集群服务,那么怎么删除呢?请看下面的删除命令:

    kubectl delete service hello-node
    kubectl delete deployment hello-node

    1. 可以使用stop 停止Minikube 虚拟机

    minikube stop

    1. 删除 Minikube 虚拟机(VM)

    minikube delete

    总结

    本节我们学习如何使用 Minikube 和 Katacoda 在 Kubernetes 上运行一个程序应用。Katacoda 提供免费的浏览器内 Kubernetes 环境。

  • 相关阅读:
    【Redis】Redis 的学习教程(六)Redis 的缓存问题
    MFC Windows 程序设计[131]之控件组合集
    NYOJ - 91 - 阶乘之和(贪心算法)
    车载网络测试工程师们可以了解下呀
    laravel vue tailwind normalize
    Web前端框架:深入探索与实践
    【Mybatis源码分析】插件机制和Pagehelper插件源码分析
    【回归预测-DELM】基于麻雀算法改进深度学习极限学习机实现数据回归预测附matlab代码
    如何写出优雅的代码?试试这些开源项目「GitHub 热点速览」
    管理类联考——数学——汇总篇——记忆——歌诀记忆法
  • 原文地址:https://blog.csdn.net/u010755471/article/details/125487083