k8s学习之路 | Day3 跟着官方体验 Minikube
官网交互路线不好走,访问有困难,很多概念不清楚,只能先尝试。
跟着官网学习如何使用minikube:https://kubernetes.io/zh-cn/docs/tutorials/hello-minikube/
- 我自己部署了一个minikube,我就用自己环境跟着走
自己启动一个Dashboard
minikube dashboard
好像等待的时间还挺长,我也不知道对不对,我在多等等吧
好像确实不得行,应该少一些东西,看样子只能本机访问,我们调整一下试试(百度去了)
##
minikube dashboard --url
##再开一个终端,这是我自己的内网IP地址
kubectl proxy --address='10.0.16.4' --accept-hosts='' --port=8009
安全组开放一下端口,浏览器访问一下试试(应该没人来访问吧,不过无所谓,):这就可以了
访问地址:http://127.0.0.1:34688/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Katacoda 环境启动一个Dashborad
还是把自己的关闭了吧,在官网的交互教程上操作吧
官网说了,下面的教程的目的是:
- 将一个示例应用部署到 Minikube
- 运行应用程序
- 查看应用日志
- 点击 Launch Terminal,出现这个黑色框,等它初始化一下子(它需要加载你的环境)
- 执行"minikube dashboard":只需要将鼠标放在这里,它就有一个小手,就可以点,点了以后终端自己会执行
- 点击下面的
+
号,然后单击“Select port to view on Host 1”
- 等待一会,(这个地方实测被墙或者啥子原因),一直打不开,但是结果肯定也和我在自己环境一样,打开是一个web界面,web界面可以操作k8s资源,启动服务等功能
创建Deployment
几个概念:
- Pod:由一个或多个为了管理和联网而绑定在一起的容器构成的组
- Deployment检查Pod的健康状况,并在Pod容器终止的情况下重新启动新的容器
- 官方推荐的管理Pod的创建于扩展方法:Deployment
尝试一下
- 【+】-【 Open a new terminal】
- 使用 kubectl create 命令创建管理 Pod 的 Deployment,该 Pod 根据提供的 Docker 镜像运行容器
kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080
- 查看一下这个 Deployment:
kubectl get deployments
- 查看Pod
kubectl get pods
- 查看集群事件
kubectl get events
- 查看
kubectl
配置
kubectl config view
创建Service
默认情况下,Pod 只能通过k8s集群中的内部IP地址访问,要使得 hello-node 容器可以从 Kubernetes 虚拟网络的外部访问,必须将 Pod 暴露为 Kubernetes Service
这个就很重要了
- 暴漏Pod给公网
#--type=LoadBalancer参数表明你希望将你的Service暴露到集群外部的端口上
#镜像 registry.k8s.io/echoserver 中的应用程序代码仅监听TCP8080端口。 如果你用 kubectl expose 暴露了其它的端口,客户端将不能访问其它端口
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
- 查看你创建的Service:
kubectl get services
在 Minikube 上,LoadBalancer 使得服务可以通过命令 minikube service 访问,这只是minikube的特性
- 运行
minikube service hello-node
- 单击加号,然后单击 Select port to view on Host 1(反正一访问就会有问题,有限制)
-
就访问不了,不过我可以试试自己的环境
创建Deployment:kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080
查看 Deployment:kubectl get deployments
(多等等)
感觉是镜像拉取不到,看看这个镜像能不能从网上下载下来导入到主机上试试
我找到了这个镜像,在dockerhub上:opsdockerimage/e2e-test-images-agnhost 不知道是不是,我尝试一下,
#先拉下来
docker pull docker pull opsdockerimage/e2e-test-images-agnhost:2.30
#再改一下标签
docker tag opsdockerimage/e2e-test-images-agnhost:2.30 registry.k8s.io/e2e-test-images/agnhost:2.39
再观察一下状态:
kubectl get deployments
kubectl get pods
##好像还是不行,算了
还是搞得不是很明白,尝试了一下其他方法,我在自己的云主机执行了
kubectl create deployment --image=nginx nginx-app
kubectl expose deployment nginx-app --port=80 --name=nginx-http --type=NodePort
好像还是不行,先搁置在这里吧,不知道如何访问服务?
启用插件
minikube内置有很多插件,可以启用、禁用和打开它
- 列出当前支持的插件:
minikube addons list
- 启用插件:
minikube addons enable metrics-server
- 查看创建的 Pod 和 Service:
kubectl get pod,svc -n kube-system
- 禁用 metrics-server:
minikube addons disable metrics-server
清理资源
#删除上面创建的pod和服务
kubectl delete service hello-node
kubectl delete deployment hello-node
#停止minikube
minikube stop
体验总结
- 官网交互路线不好走,访问有困难,很多概念不清楚,只能先尝试
#通过deployment创建pod
kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39
#查看k8s集群中的的部署资源
kubectl get deployments
#查看pod资源
kubectl get pods
#查看集群事件
kubectl get events
#查看kubectl配置
kubectl config view
#创建service,就是暴露Pod
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
#查看创建的service
kubectl get services
#清理minikube全部资源
minikube delete --all
rm -rf ~/.minikube
更多推荐
所有评论(0)