通过deployment的方式进行创建
kubectl create deployment hello-nginx --image=nginx:latest --port=8080
可以在看板的deployment里关闭,因为是deployment里打开的
minikube dashboard
kubectl expose deployment hello-nginx --type=NodePort --port=80
还有一种暴露服务的写法是kubectl expose deployment hello-nginx --type=NodePort --port=9996 --target-port=80
简单的解释一下port和target-port的意思,按照我个人理解port就是集群内部可以访问的端口,这个时候又在想啥叫集群内部?我的理解是同一个pod下的不同容器直接访问的话就用这个,target-port是作容器里的程序监听(listen)的端口。
这个时候kubectl get services发现怎么还有个30000多的端口?这个端口是干嘛的?这个是集群外部可以访问的,注意这个cluster-ip可不是nodeport的端口。应该使用external-ip,如何获取external-ip呢?使用kubectl get nodes -o wide


通过external-ip:external-port就可以访问到了,

官方说明链接给出的定义如下,但是我觉得NodePort和LoadBalancer说法还是太抽象了,我怎么看出来区别呢?我简单的实验了下

如果是LoadBalancer,external-ip是pending的状态,简单可以从这里看出来一定得差别

kubectl get services
minikube service hello-nginx
kubectl get pods