首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kubenets:分步带你简单的搭建一个单节点的 Kubenets集群环境

Minikube

Minikube是一种可以轻松在本地运行Kubernetes的工具。Minikube在笔记本电脑上的VM内运行一个单节点Kubernetes集群,以供希望试用Kubernetes或每天进行开发的用户使用。

Step-1

我们首先检验一下 minikube 的环境安装

minikube version

现在我们要在终端启动一个虚拟机,然后Kubenets部署在虚拟机里面去:

minikube start --wait=false

$ minikube start --wait=false

* minikube v1.8.1 on Ubuntu 18.04

* Using the none driver based on user configuration

* Running on localhost (CPUs=2, Memory=2460MB, Disk=145651MB) ...

* OS release is Ubuntu 18.04.4 LTS

* Preparing Kubernetes v1.17.3 on Docker 19.03.6 ...

- kubelet.resolv-conf=/run/systemd/resolve/resolv.conf

* Launching Kubernetes ...

* Enabling addons: default-storageclass, storage-provisioner

* Configuring local host environment ...

* Done! kubectl is now configured to use "minikube"

Step-2

现在我们的已经有一个 Kubenets集群在运作了。继续看:

kubectl cluster-info

会打印出 cluster 的相关信息:

Kubernetes master is running at https://172.17.0.9:8443

KubeDNS is running at https://172.17.0.9:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

再来看一下我们使用到的节点:

$ kubectl get nodes

NAME STATUS ROLES AGE VERSION

minikube Ready master 100s v1.17.3

Step-3

使用kubectl run,它可以将容器部署到集群上:

kubectl create deployment first-deployment --image=katacoda/docker-http-server

现在我们拿到我们运行中的 Pods:

kubectl get pods

得到的信息如下:

NAME READY STATUS RESTARTS AGE

first-deployment-666c48b44-8jcvk 1/1 Running 0 59s

容器运行后,可以根据要求通过不同的网络选项进行公开。一种可能的解决方案是NodePort,它为容器提供了动态端口。

kubectl expose deployment first-deployment --port=80 --type=NodePort

得到的信息如下:

service/first-deployment exposed

下面的命令查找分配的端口并执行HTTP请求:

$ export PORT=$(kubectl get svc first-deployment -o go-template='{{range.spec.ports}}{{if .nodePort}}{{.nodePort}}{{"\n"}}{{end}}{{end}}')$ echo "Accessing host01:$PORT"

Accessing host01:31727

$ curl host01:$PORT

The result is the container that processed the request.

Step-4

使用Minikube通过以下命令启用仪表板:

minikube addons enable dashboard

通过部署以下YAML定义,使Kubernetes仪表板可用。仅应在Katacoda上使用。

kubectl apply -f /opt/kubernetes-dashboard.yaml

yaml 的内容如下:

apiVersion: v1

kind: Namespace

metadata:

labels:

addonmanager.kubernetes.io/mode: Reconcile

kubernetes.io/minikube-addons: dashboard

name: kubernetes-dashboard

selfLink: /api/v1/namespaces/kubernetes-dashboard

spec:

finalizers:

- kubernetes

status:

phase: Active

---

apiVersion: v1

kind: Service

metadata:

labels:

app: kubernetes-dashboard

name: kubernetes-dashboard-katacoda

namespace: kubernetes-dashboard

spec:

ports:

- port: 80

protocol: TCP

targetPort: 9090

nodePort: 30000

selector:

k8s-app: kubernetes-dashboard

type: NodePort

Kubernetes仪表板使您可以在UI中查看应用程序。在此部署中,仪表板已在端口30000上可用,但可能需要一段时间才能启动。

要查看仪表板启动的进度,请使用以下命令查看kube-system命名空间中的Pod:

kubectl get pods -n kubernetes-dashboard -w

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200414A054HE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券