Minikube 在Kubernetes上执行简单的Hello World官方教程知识整理

Minikube 在Kubernetes上执行简单的Hello World官方教程知识整理

在你开始之前

本教程提供了从以下档案构建的容器映像:

minikube/server.js

var http = require(\http\);

var handleRequest = function(request, response) {

console.log(\Received request for URL: \ + request.url);

response.writeHead(200);

response.end(\Hello World!\);

};

var www = http.createServer(handleRequest);

www.listen(8080);

minikube/Dockerfile

FROM node:6.14.2

EXPOSE 8080

COPY server.js .

CMD node server.js

有关该docker build命令的更多资讯,请阅读Docker文件。

建立一个Minikube丛集

启动终端minikube start

在浏览器中开启Kubernetes仪表板:minikube dashboard

建立部署

Kubernetes Pod是一组一个或多个容器,用于管理和联网。本教程中的Pod只有一个Container。Kubernetes 部署会检查Pod的执行状况,并在Pod终止时重新启动Pod的容器。部署是管理Pod的建立和扩充套件的推荐方法。

使用该kubectl create命令建立管理Pod的Deployment。Pod根据提供的Docker映象执行Container。kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node

检视部署:kubectl get deployments

输出:NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE

hello-node 1 1 1 1 1m

检视Pod:kubectl get pods

输出:NAME READY STATUS RESTARTS AGE

hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m

检视群集事件:kubectl get events

检视kubectl配置:kubectl config view

注意:有关kubectl命令的更多资讯,请参阅kubectl概述。

建立服务

预设情况下,Pod只能通过Kubernetes群集中的内部IP地址访问。要从hello-nodeKubernetes虚拟网络外部访问Container,您必须将Pod公开为Kubernetes 服务。

使用以下kubectl expose命令将Pod公开到公共Internet :kubectl expose deployment hello-node --type=LoadBalancer --port=8080

--type=LoadBalancer标志表示您要在群集外部公开您的服务。检视刚刚建立的服务:kubectl get services

输出:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

hello-node LoadBalancer 10.108.144.78 8080:30369/TCP 21s

kubernetes ClusterIP 10.96.0.1 443/TCP 23m

在支援负载均衡器的云提供商上,将配置外部IP地址以访问服务。在Minikube上,LoadBalancer型别使服务可通过minikube service 命令访问。执行以下命令:minikube service hello-node

启用外挂

Minikube有一组内建外挂,可以在本地Kubernetes环境中启用,禁用和开启。

列出当前支援的外挂:minikube addons list

输出:

addon-manager: enabled

coredns: disabled

dashboard: enabled

default-storageclass: enabled

efk: disabled

freshpod: disabled

heapster: disabled

ingress: disabled

kube-dns: enabled

metrics-server: disabled

nvidia-driver-installer: disabled

nvidia-gpu-device-plugin: disabled

registry: disabled

registry-creds: disabled

storage-provisioner: enabled

启用外挂,例如heapster:minikube addons enable heapster

输出:

heapster was successfully enabled

检视刚刚建立的Pod和服务:kubectl get pod,svc -n kube-system

输出:

NAME READY STATUS RESTARTS AGE

pod/heapster-9jttx 1/1 Running 0 26s

pod/influxdb-grafana-b29w8 2/2 Running 0 26s

pod/kube-addon-manager-minikube 1/1 Running 0 34m

pod/kube-dns-6dcb57bcc8-gv7mw 3/3 Running 0 34m

pod/kubernetes-dashboard-5498ccf677-cgspw 1/1 Running 0 34m

pod/storage-provisioner 1/1 Running 0 34m

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

service/heapster ClusterIP 10.96.241.45 80/TCP 26s

service/kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP 34m

service/kubernetes-dashboard NodePort 10.109.29.1 80:30000/TCP 34m

service/monitoring-grafana NodePort 10.99.24.54 80:30002/TCP 26s

service/monitoring-influxdb ClusterIP 10.111.169.94 8083/TCP,8086/TCP 26s

禁用heapster:minikube addons disable heapster

输出:

heapster was successfully disabled

清理

现在,您可以清理在群集中建立的资源:

kubectl delete service hello-node

kubectl delete deployment hello-node

(可选)停止Minikube虚拟机器(VM):

minikube stop

(可选)删除Minikube VM:

minikube delete

猜你喜欢

站长统计