在桌面电脑上使用Docker和Minikube构建Kubernetes(K8S)试验环境,为学习和测试提供了一个理想的平台。Docker的容器化技术允许在隔离的环境中运行应用,而Minikube则简化了在单节点上部署和管理Kubernetes集群的过程。这种组合使得个人用户能够在本地机器上轻松搭建和操作一个K8S环境,无需复杂的硬件设施。
通过安装Docker和Minikube,我们可以快速启动一个基本的Kubernetes集群,进行应用部署、性能监控和功能实践等操作。这种方法特别适合初学者和开发者,可以在这个环境中实验不同的配置和应用,而无需担心高成本或影响到生产环境。
尽管这种在PC端构建的K8S试验环境在性能和规模上有所限制,但它提供了一个低成本、高效的学习和测试平台。对于希望深入了解Kubernetes工作原理和应用的个人来说,是一个极好的起点。
下面是安装部署过程供大家参考:
C:\minikube
),并将该目录添加到系统的环境变量PATH中。New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing
$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
if ($oldPath.Split(';') -inotcontains 'C:\minikube'){
[Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine)
}
amd64版:【免费】用于在MAC本地学习K8S的minikube-darwin-amd64资源-CSDN文库
sudo install minikube-darwin-amd64 /usr/local/bin/minikube
arm64版:【免费】用于在MAC本地学习K8S的集群安装minikube-darwin-arm64资源-CSDN文库
sudo install minikube-darwin-arm64 /usr/local/bin/minikube
打开命令提示符或PowerShell,运行 minikube start
minikube start
命令执行之后如下图:
在Windows上,你可以下载kubelctl.exe文件,将其放在minikube.exe相同的文件夹下。
链接:https://pan.quark.cn/s/3494d8c859fb
提取码:MU8B
在macOS或Linux上,通常可以使用包管理器,如brew install kubectl。
验证安装:运行kubectl version --client来验证安装。
kubectl get pod -A
执行结果:
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080
执行结果如下:
查看Service,执行如下语句:
kubectl get services hello-minikube
执行结果如下:
将服务端口转发,执行如下语句:
kubectl port-forward service/hello-minikube 7080:8080
执行结果如下:
然后在浏览器栏中输入: http://localhost:7080/.
返回sample service 返回的结果
minikube stop
minikube config set memory 9001
minikube addons list
minikube start -p aged --kubernetes-version=v1.16.1
启动第二个节点
minikube start --nodes 2 -p multinode-demo
执行结果示例:
查看node情况:
kubectl get node
看到,系统返回两个节点信息 ,Minikube也可以模拟K8S的多node的场景。
查看node状态信息
minikube status -p multinode-demo
返回结果如下:
minikube delete --all
启动Dashboard,执行如下语句:
minikube dashboard
后面大家可以充分的利用这个本地化的K8S学习和试验云原生相关的内容啦。
获取资源信息:
kubectl get pods
:列出所有 pods。kubectl get services
:列出所有服务。kubectl get deployments
:列出所有部署。kubectl get nodes
:列出所有节点。创建和删除资源:
kubectl create -f
:根据 YAML 文件创建资源。kubectl delete -f
:根据 YAML 文件删除资源。kubectl delete pod
:删除指定的 pod。描述和查看资源详情:
kubectl describe pod
:显示 pod 的详细信息。kubectl logs
:查看 pod 的日志。kubectl exec -it -- /bin/bash
:进入 pod 的交互式 shell。资源的编辑和更新:
kubectl edit pod
:编辑 pod 的定义。kubectl apply -f
:应用 YAML 文件中的更改。命名空间操作:
kubectl get namespaces
:列出所有命名空间。kubectl create namespace
:创建新的命名空间。kubectl config set-context --current --namespace=
:切换到指定的命名空间。调试和诊断:
kubectl top pod
:显示 pods 的资源使用情况。kubectl rollout status deployment/
:查看部署的状态。kubectl rollout undo deployment/
:回滚到上一个部署版本。配置和安全:
kubectl config view
:查看 kubectl 配置。kubectl get secrets
:列出所有的密钥。