前面已经跑起来minikube了,单机版的k8s集群
接下来准备再k8s上运行第一个应用
注意,这里是一定会从远程docker仓库去拉取的
kubectl
run
kubia
--
image=luksa/kubia --port=8080
--generator=run/v1
--
image=
k
ubia
显示的是指定要运行的容器镜像,--
port=8080 选项告诉k8s应用正在监听
8080
端口
。最后一
个标志(--
generator
)需要
解释下,通常并不
会使
用到它,它让
Ku
bern
etes
创建 R
eplication
Controller, 而不是 deployment
。
如何访问正在运行的pod?前面说过每个pod都有自己的IP地址,但是这个地址是集群内部的,不能从集群外部访问。要让pod能够从外部访问,需要通过服务对象公开它,要创建一个特殊的LoadBalancer类型的服务。因为如果你创建一个常规服务(一个ClusterIP服务),比如Pod,他也只能从集群内部访问。通过创建LoadBalancer类型的服务,将创建一个外部的负载均衡,可以通过负载均衡的公共IP访问pod。
这里的--generator已经被弃用,所以一直跑都失败,后来百度改用别的方法
先暴露服务
kubectl run kubia --image=luksa/kubia --port=8080
将其作为Service公开,选项 --type = NodePort
指定 Service 的类型。
kubectl expose pod kubia --type=NodePort
kubectl get pod
发现正在running
minikube service kubia --url
但是奇怪的是在Windows机访问不了,只能在centOS7访问到