Kubernetes创建集群—使用 Minikube 创建集群

这篇具有很好参考价值的文章主要介绍了Kubernetes创建集群—使用 Minikube 创建集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Kubernetes创建集群—使用 Minikube 创建集群,Kubernetes,kubernetes,容器,云原生

 一、使用 Minikube 创建集群

1、Kubernetes 集群

Kubernetes 协调一个高可用计算机集群,每个计算机作为独立单元互相连接工作。 Kubernetes 中的抽象允许你将容器化的应用部署到集群,而无需将它们绑定到某个特定的独立计算机。为了使用这种新的部署模型,应用需要以将应用与单个主机分离的方式打包:它们需要被容器化。与过去的那种应用直接以包的方式深度与主机集成的部署模型相比,容器化应用更灵活、更可用。 Kubernetes 以更高效的方式跨集群自动分发和调度应用容器。 Kubernetes 是一个开源平台,并且可应用于生产环境。

一个 Kubernetes 集群包含两种类型的资源:

  • Control Plane 调度整个集群
  • Nodes 负责运行应用

2、集群图

Kubernetes创建集群—使用 Minikube 创建集群,Kubernetes,kubernetes,容器,云原生

Control Plane 负责管理整个集群。 Control Plane 协调集群中的所有活动,例如调度应用、维护应用的所需状态、应用扩容以及推出新的更新。
Node 是一个虚拟机或者物理机,它在 Kubernetes 集群中充当工作机器的角色 每个Node都有 Kubelet , 它管理 Node 而且是 Node 与 Control Plane 通信的代理。 Node 还应该具有用于​​处理容器操作的工具,例如 Docker 或 rkt 。处理生产级流量的 Kubernetes 集群至少应具有三个 Node,因为如果一个 Node 出现故障其对应的 etcd 成员和控制平面实例都会丢失,并且冗余会受到影响。 你可以通过添加更多控制平面节点来降低这种风险 。
Control Plane 管理集群,Node 用于托管正在运行的应用。
在 Kubernetes 上部署应用时,你告诉 Control Plane 启动应用容器。 Control Plane 就编排容器在集群的 Node 上运行。 Node 使用 Control Plane 暴露的 Kubernetes API 与 Control Plane 通信。终端用户也可以使用 Kubernetes API 与集群交互。
Kubernetes 既可以部署在物理机上也可以部署在虚拟机上。你可以使用 Minikube 开始部署 Kubernetes 集群。 Minikube 是一种轻量级的 Kubernetes 实现,可在本地计算机上创建 VM 并部署仅包含一个节点的简单集群。 Minikube 可用于 Linux , macOS 和 Windows 系统。Minikube CLI 提供了用于引导集群工作的多种操作,包括启动、停止、查看状态和删除。

 3、创建 Minikube 集群

 首先确定已经安装minikube, kubectl。

minikube start

4、打开仪表板

打开 Kubernetes 仪表板。你可以通过两种不同的方式执行此操作:

打开一个新的终端,然后运行:

# 启动一个新的终端,并保持此命令运行。
minikube dashboard

现在,切换回运行 minikube start 的终端。

如果你不想 Minikube 为你打开 Web 浏览器,可以使用 --url 标志运行仪表板命令。 minikube 会输出一个 URL,你可以在你喜欢的浏览器中打开该 URL。

打开一个新的终端,然后运行:

# 启动一个新的终端,并保持此命令运行。
minikube dashboard --url

现在,切换回运行 minikube start 的终端。

5、创建 Deployment

Kubernetes Pod 是由一个或多个为了管理和联网而绑定在一起的容器构成的组。本教程中的 Pod 只有一个容器。 Kubernetes Deployment 检查 Pod 的健康状况,并在 Pod 中的容器终止的情况下重新启动新的容器。 Deployment 是管理 Pod 创建和扩展的推荐方法。

  1. 使用 kubectl create 命令创建管理 Pod 的 Deployment。该 Pod 根据提供的 Docker 镜像运行容器。

    # 运行包含 Web 服务器的测试容器镜像
    kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080
    
  1. 查看 Deployment:

    kubectl get deployments
    

    输出结果类似于这样:

    NAME         READY   UP-TO-DATE   AVAILABLE   AGE
    hello-node   1/1     1            1           1m
    
  1. 查看 Pod:

    kubectl get pods
    

    输出结果类似于这样:

    NAME                          READY     STATUS    RESTARTS   AGE
    hello-node-5f76cf6ccf-br9b5   1/1       Running   0          1m
    
  1. 查看集群事件:

    kubectl get events
    
  1. 查看 kubectl 配置:

    kubectl config view
    

6、创建 Service

默认情况下,Pod 只能通过 Kubernetes 集群中的内部 IP 地址访问。 要使得 hello-node 容器可以从 Kubernetes 虚拟网络的外部访问,你必须将 Pod 暴露为 Kubernetes Service。

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

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

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

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

  1. 查看你创建的 Service:

    kubectl get services
    

    输出结果类似于这样:

    NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    hello-node   LoadBalancer   10.108.144.78   <pending>     8080:30369/TCP   21s
    kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP          23m
    

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

  1. 运行下面的命令:

    minikube service hello-node
    

    这将打开一个浏览器窗口,为你的应用程序提供服务并显示应用的响应。

7、启用插件

Minikube 有一组内置的插件, 可以在本地 Kubernetes 环境中启用、禁用和打开。

  1. 列出当前支持的插件:

    minikube addons list
    

    输出结果类似于这样:

    addon-manager: enabled
    dashboard: enabled
    default-storageclass: enabled
    efk: disabled
    freshpod: disabled
    gvisor: disabled
    helm-tiller: disabled
    ingress: disabled
    ingress-dns: disabled
    logviewer: disabled
    metrics-server: disabled
    nvidia-driver-installer: disabled
    nvidia-gpu-device-plugin: disabled
    registry: disabled
    registry-creds: disabled
    storage-provisioner: enabled
    storage-provisioner-gluster: disabled
    
  1. 启用插件,例如 metrics-server

    minikube addons enable metrics-server
    

    输出结果类似于这样:

    The 'metrics-server' addon is enabled
    
  1. 查看通过安装该插件所创建的 Pod 和 Service:

    kubectl get pod,svc -n kube-system
    

    输出结果类似于这样:

    NAME                                        READY     STATUS    RESTARTS   AGE
    pod/coredns-5644d7b6d9-mh9ll                1/1       Running   0          34m
    pod/coredns-5644d7b6d9-pqd2t                1/1       Running   0          34m
    pod/metrics-server-67fb648c5                1/1       Running   0          26s
    pod/etcd-minikube                           1/1       Running   0          34m
    pod/influxdb-grafana-b29w8                  2/2       Running   0          26s
    pod/kube-addon-manager-minikube             1/1       Running   0          34m
    pod/kube-apiserver-minikube                 1/1       Running   0          34m
    pod/kube-controller-manager-minikube        1/1       Running   0          34m
    pod/kube-proxy-rnlps                        1/1       Running   0          34m
    pod/kube-scheduler-minikube                 1/1       Running   0          34m
    pod/storage-provisioner                     1/1       Running   0          34m
    
    NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
    service/metrics-server         ClusterIP   10.96.241.45    <none>        80/TCP              26s
    service/kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP       34m
    service/monitoring-grafana     NodePort    10.99.24.54     <none>        80:30002/TCP        26s
    service/monitoring-influxdb    ClusterIP   10.111.169.94   <none>        8083/TCP,8086/TCP   26s
    
  1. 禁用 metrics-server

    minikube addons disable metrics-server
    

    输出结果类似于这样:

    metrics-server was successfully disabled
    

8、清理

现在可以清理你在集群中创建的资源:

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

停止 Minikube 集群:

minikube stop

可选地,删除 Minikube 虚拟机(VM):

# 可选的
minikube delete

如果你还想使用 Minikube 进一步学习 Kubernetes,那就不需要删除 Minikube。文章来源地址https://www.toymoban.com/news/detail-516388.html

到了这里,关于Kubernetes创建集群—使用 Minikube 创建集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 容器和云原生(三):kubernetes搭建与使用

            目录 单机K8S docker containerd image依赖 kubeadm初始化 验证 crictl工具 K8S核心组件 上文安装单机docker是很简单docker,但是生产环境需要多个主机,主机上启动多个docker容器,相同容器会绑定形成1个服务service,微服务场景中多个service会互相调用,那么就需要保证多个servi

    2024年02月11日
    浏览(31)
  • 云原生|kubernetes|kubernetes集群部署神器kubekey的初步使用(centos7下的kubekey使用)

    kubernetes集群的安装部署是学习kubernetes所需要面对的第一个难关,确实是非常不好部署的,尤其是二进制方式,虽然有minikube,kubeadm大大的简化了kubernetes的部署难度,那么,针对我们的学习环境或者测试环境,我们应该如何能够快速的,简单的,非常优雅的部署一个学习或者

    2024年02月16日
    浏览(46)
  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    目录 一、理论 1.K8S集群升级 2.环境 3.升级策略 4.master1节点迁移容器运行时(docker → containerd)  5.master2节点迁移容器运行时(docker → containerd)  6.node1节点容器运行时迁移(docker → containerd)  7.升级集群计划(v1.23.14 → v1.24.1) 8.升级master1节点版本(v1.24.1) 9.升级master2节点版本

    2024年02月03日
    浏览(66)
  • 【云原生】kubernetes在Pod中init容器的作用和使用

    目录 Pod 中 init 容器 1 init 容器特点 2 使用 init 容器 Pod 中 init 容器 Init 容器是一种特殊容器,在Pod 内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。 1 init 容器特点 init 容器与普通的容器非常像,除了如下几点: 它们总是运行到完

    2024年02月14日
    浏览(38)
  • 云原生之深入解析Kubernetes中如何使用临时容器进行故障排查

    容器及其周围的生态系统改变了工程师部署、维护和排查工作负载故障的方式。但是,在 Kubernetes 集群上调试应用程序有时可能会很困难,因为可能在容器中找不到所需的调试工具。许多工程师使用基于精简、发行版构建无发行版的基础镜像,其中甚至没有包管理器或shell,

    2024年02月05日
    浏览(47)
  • 云原生之深入解析如何正确计算Kubernetes容器CPU使用率

    使用 Prometheus 配置 kubernetes 环境中 Container 的 CPU 使用率时,会经常遇到 CPU 使用超出 100%,现在来分析一下: container_spec_cpu_period:当对容器进行 CPU 限制时,CFS 调度的时间窗口,又称容器 CPU 的时钟周期通常是 100000 微秒 container_spec_cpu_quota:是指容器的使用 CPU 时间周期总量

    2024年02月10日
    浏览(65)
  • 云原生|kubernetes|kubernetes集群巡检脚本

    生产环境下的kubernetes集群安装部署仅仅是前期的一点点工作,主要的工作其实是集中在集群正式运行后的维护,管理工作。 而kubernetes集群的巡视检查工作是一个比较重要的工作,可以通过定时,定期的巡检能够提前发现kubernetes集群的一些潜在问题,从而在发生大的影响运行

    2024年02月15日
    浏览(34)
  • 云原生|kubernetes|使用cri-docker部署基于kubeadm-1.25.4的集群

    前言: kubernetes的部署从1.24版本开始后,弃用docker-shim,也就是说部署1.24版本后的集群不能使用docker-ce了。 比较清晰的解决方案有两个,一是使用containerd,这个是一个新的支持cri标准的shim,一个是使用cri-docker这样的中间插件形式, 一头通过CRI跟kubelet交互,另一头跟docker

    2024年02月07日
    浏览(75)
  • 【云原生】Kubernetes临时容器

    特性状态: Kubernetes v1.25 [stable] 本页面概述了临时容器:一种特殊的容器,该容器在现有 Pod 中临时运行,以便完成用户发起的操作,例如故障排查。 你会使用临时容器来检查服务,而不是用它来构建应用程序 Pod 是 Kubernetes 应用程序的基本构建块。 由于 Pod 是一次性且可替

    2024年02月15日
    浏览(38)
  • 【云原生|Kubernetes】02-Kubeadm安装部署Kubernetes集群

    前面简单介绍了Kubernetes的相关架构及其组件,这一章节我们将介绍如何快速搭建Kubernetes的集群,这里我们将使用官方支持的用于部署 Kubernetes 的工具— kubeadm。 主机名 ip地址 节点类型 系统版本 master.example.com 192.168.194.128 master,etcd centos7.x node1.example.com 192.168.194.130 node1 cent

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包