minikube 启动一个 nginx 服务 deployment

源地址:https://minikube.sigs.k8s.io/docs/start/

一。启动minikube

minikube start    //默认启动,可以加后面几种参数,自己看环境选择

2.驱动参数---指定驱动名称

说明: 若要为 minikube start 设置 --vm-driver,在下面提到 <驱动名称> 的地方, 用小写字母输入你安装的 hypervisor 的名称。 指定 VM 驱动程序 列举了 --vm-driver 值的完整列表。

minikube start --vm-driver=<驱动名称>
sudo su - shitingbao
minikube start --vm-driver=<驱动名称> --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
# 举个例子
minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
//使用docker驱动要加这个参数
minikube start --driver=docker

注意:这里要注意的是,使用none参数需要你的root权限,如果你的vm-driver使用的docker,那就不能在root下运行,他会报要给错误,这里不同的参数使用权限还不同,这里使用none作为例子。

运行成功后会出现类似下面这个


image.png

如果不使用镜像,就可能会出现下面这个无法拉取镜像的问题


image.png

一旦 minikube start 完成,你可以运行下面的命令来检查集群的状态:

minikube status

如果你的集群正在运行,minikube status 的输出结果应该类似于这样:

host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

这里他会在docker中运行一些基本的容器,你可以在docker ps中看到一些正在运行的容器,大致是这样


image.png

成功

做到这一步,说明你的kubernetes已经运行成功了。接下来可以做一些其他操作。

1.下载对应的 kubectl 工具(已经是最新的 kubectl 可省略)

minikube kubectl -- get po -A

1.1 使用 kubectl create 命令创建管理 Pod 的 Deployment。该 Pod 根据提供的 Docker 镜像运行 Container(下面用nginx镜像做例子,不使用官方例子,因为亲和一些),需要提前 docker pull nginx

kubectl create deployment hello-nginx --image=nginx:latest

这句话代表运行一个名称为 hello-nginx 的 pod 内为 nginx 镜像的 Deployment

1.2 查看 Deployment:

kubectl get deployments

输出结果类似于这样:

NAME         READY   UP-TO-DATE   AVAILABLE   AGE
hello-node   1/1     1            1           1m

1.3 查看 Pod:

kubectl get pods

输出结果类似于这样:

NAME                          READY     STATUS    RESTARTS   AGE
hello-node-5f76cf6ccf-br9b5   1/1       Running   0          1m

1.5查看集群事件:

kubectl get events

1.6 查看 kubectl 配置:

kubectl config view

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

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

官方教程:https://kubernetes.io/zh/docs/tutorials/kubernetes-basics/expose/expose-interactive/

命令详情地址:http://docs.kubernetes.org.cn/475.html
这个不同的 type 都可以 ,详细区别去官方解释看

kubectl expose deployment hello-nginx --type=NodePort --port=80 --target-port=80

注意:创建新服务并将其公开给外部通信,我们将使用带有 NodePort 的expose命令作为参数(minikube还不支持LoadBalancer选项)。

查看你创建的 Service:

kubectl get services

输出结果类似于这样:

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

注意:

1.NodePort : 会随机在服务器上选一个端口作为对应,这里默认的 nginx 的 80 端口指的是容器内的,30369 是实际的服务器端口(外部访问的端口)

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

查看 nginx 访问地址

运行下面的命令:

minikube service hello-nginx(使用这个要注意外部的调用)
image.png

这里的这个地址就是你本地的地址,可以直接访问试试


image.png

对应宿主机的端口转发

或者,使用kubectl转发端口,将目标80 端口,就是上面那个容器实际的 nginx 端口关联到 宿主机的 8080 上,外部直接访问 8080 即可访问该容器的nginx(curl
127.0.0.1:8080)。注意: --address 0.0.0.0 是说都可以访问,不加这个只能本地 127.0.0.1 访问

kubectl port-forward --address 0.0.0.0 service/hello-nginx 8080:80

停止运行

在确认 Minikube 与 hypervisor 均正常工作后,你可以继续使用 Minikube 或停止集群。要停止集群,请运行:

minikube stop

清理本地状态

如果你之前安装过 Minikube,即使已经停止了,再次运行 minikube start 会返回一个错误:

machine does not exist

那么,你需要清理 minikube 的本地状态(因为已经运行过会有上一次的信息,下一次启动需要先清理上一次的信息):

minikube delete
or
minikube delete --all

这时候再去运行start命令就可以正常启动,也就是说,执行stop后需要执行delete删除,下次才能start。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343