minikube安装
# 查看linux 架构模式x86_64、arm64
uname -m
# Intel x86_64
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# Apple arm64
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
sudo install minikube /usr/local/bin/
#查看版本
minikube version
运行结果
kubectl安装
kubectl 的作用有点类似“docker”,它也是一个命令行工具,是与 Kubernetes 后台服务通信,把我们的命令转发给 Kubernetes,实现容器和集群的管理功能
minikube kubectl
它就会把与当前 Kubernetes 版本匹配的 kubectl 下载下来,存放在内部目录(例如 .minikube/cache/linux/arm64/v1.23.3),然后我们就可以使用它来对 Kubernetes“发号施令”了。
在 minikube 环境里,我们会用到两个客户端:minikube 管理 Kubernetes 集群环境,kubectl 操作实际的 Kubernetes 功能
验证 minikube 环境
资源要求
起码要2核4g的机器
CPUs=2, Memory=4g
以当前最新版本的 Kubernetes 启动集群,可以在后面再加上一个参数 --kubernetes-version,明确指定要使用 Kubernetes 版本
minikube start --kubernetes-version=v1.23.3
# root用户启动
minikube start --kubernetes-version=v1.23.3 --force
镜像拉取不下来,切换到国内镜像
#先执行
minikube delete
#再执行
minikube start --image-mirror-country='cn'
root用户启动会报如下问题
* minikube v1.33.0 on Alibaba 3 (amd64)
* Automatically selected the docker driver. Other choices: ssh, none
* The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
* If you are running minikube within a VM, consider using --driver=none:
* https://minikube.sigs.k8s.io/docs/reference/drivers/none/
X Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.
使用 minikube status、minikube node list这两个命令来查看集群的状态:
minikube status
minikube node list
Kubernetes 集群里现在只有一个节点,名字就叫“minikube”,类型是“Control Plane”,里面有 host、kubelet、apiserver 三个服务,IP 地址是 192.168.49.2。
使用命令 minikube ssh 登录到这个节点上,虽然它是虚拟的,但用起来和实机也没什么区别:
体会 Kubernetes 容器编排能力
查看版本:
[root@iZbp12ghzy6koox6fqt0suZ /]# minikube kubectl -- version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3", GitCommit:"816c97ab8cff8a1c72eccca1026f7820e93e0d25", GitTreeState:"clean", BuildDate:"2022-01-25T21:25:17Z", GoVersion:"go1.17.6", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3", GitCommit:"816c97ab8cff8a1c72eccca1026f7820e93e0d25", GitTreeState:"clean", BuildDate:"2022-01-25T21:19:12Z", GoVersion:"go1.17.6", Compiler:"gc", Platform:"linux/amd64"}
直接使用 kubectl 命令
使用 Linux 的“alias”功能,为它创建一个别名,写到当前用户目录下的 .bashrc 里
alias kubectl="minikube kubectl --"
另外,kubectl 还提供了命令自动补全的功能,你还应该再加上“kubectl completion”:
source <(kubectl completion bash)
Kubernetes 里运行一个 Nginx 应用
kubectl run ngx --image=nginx:alpine
查看pod状态
kubectl get pod