一、创建Minikube
- 上一节我们一起安装了Minikube 集群,接下来我们可以在Docker 控制面板中启动,也可以直接使用命令启动
minikube start
如果这里报错: /etc/kubernetes: mkdir /etc/kubernetes: permission denied
❌ Exiting due to GUEST_START: Failed kubeconfig update: writing kubeconfig: Error creating directory: /etc/kubernetes: mkdir /etc/kubernetes: permission denied
原因:$KUBECONFIG 变量被占用了
解决:重置$KUBECONFIG 变量
unset KUBECONFIG
强制使用root 身份执行:
minikube start --force --driver=docker
😄 Darwin 12.1 上的 minikube v1.26.0 ❗ minikube skips various
validations when --force is supplied; this may lead to unexpected
behavior 🆕 Kubernetes 1.24.1 is now available. If you would like to
upgrade, specify: --kubernetes-version=v1.24.1 ✨ 根据现有的配置文件使用 docker
驱动程序 👍 Starting control plane node minikube in cluster minikube 🚜
Pulling base image …index.docker.io/kicbase/sta…: 0 B [_____________________] ?% ? p/s 2m7s 🏃 Updating the running docker “minikube” container … 🐳
正在 Docker 20.10.12 中准备 Kubernetes v1.23.3…
▪ kubelet.housekeeping-interval=5m 🔎 Verifying Kubernetes components…
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
▪ Using image kubernetesui/dashboard:v2.6.0
▪ Using image kubernetesui/metrics-scraper:v1.0.8 🌟 Enabled addons: storage-provisioner, default-storageclass, dashboard 🏄 Done!
kubectl is now configured to use “minikube” cluster and “default”
namespace by default
- 在浏览器中打开 Kubernetes 仪表板(Dashboard)
minikube dashboard
运行之后,会为我们打开一个Web 浏览器界面
在这里,我们可以在仪表板上创建 Kubernetes 资源,例如 Deployment 和 Service。
二、创建Deployment
- 使用 kubectl create 命令创建管理 Pod 的 Deployment。
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
- 查看 Deployment
kubectl get deployments
输出结果:
NAME READY UP-TO-DATE AVAILABLE AGE
hello-node 0/1 1 0 23s
- 查看 Pod
kubectl get pods
输出结果:
NAME READY STATUS RESTARTS AGE
hello-node-6b89d599b9-6bbjk 1/1 Running 0 4m54s
- 查看集群事件:
kubectl get events
这里会输出集群的所有事件
- 查看 kubectl 配置:
kubectl config view
kubectl 输出当前的所有配置
三、创建 Service
- 使用 kubectl expose 命令将 Pod 暴露给公网:
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
这里的 --type=LoadBalancer 参数表明你希望将你的 Service 暴露到集群外部。
输出结果:
service/hello-node exposed
镜像 k8s.gcr.io/echoserver 中的应用程序代码仅监听 TCP 8080 端口。 如果你用 kubectl expose 暴露了其它的端口,客户端将不能访问其它端口。
- 查看你创建的 Service:
kubectl get services
输出结果:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.107.63.235 8080:31848/TCP 42s
kubernetes ClusterIP 10.96.0.1 443/TCP 41m
对于支持负载均衡器的云服务平台而言,平台将提供一个外部 IP 来访问该服务。 在 Minikube 上,LoadBalancer 使得服务可以通过命令 minikube service 访问。
学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!