minikube安装

环境配置:

2 个 CPU 或更多 2GB 可用内存 20GB 可用磁盘空间 网络连接 容器或虚拟机管理器,例如:Docker、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox或VMware Fusion/Workstation

在使用minikube之前,先安装docker
 

1、安装docker

# 卸载可能已安装的旧版本docker
sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
    
# 安装一些工具
sudo yum install -y yum-utils
# 设置镜像仓库,这个仓库是国外的
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
 # 阿里云镜像仓库   
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新软件包索引
yum makecache fast
# 安装
sudo yum install docker-ce docker-ce-cli containerd.io
# 启动docker
systemctl start docker
# 查看版本,确认安装成功
docker version

创建root权限账户

# 添加用户
adduserminikube
# 添加密码
passwd minikube
# 赋予root权限,要修改sudoers文件,我们先需要赋予它write权限。然后再修改
chmod -v u+w /etc/sudoers
# 编辑文件
vim /etc/sudoers
# 编辑sudoers文件时,找到下面的内容,其中minikube ALL=(ALL) ALL是需要添加的
## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
minikube ALL=(ALL) ALL
# 收回权限
chmod -v u-w /etc/sudoers
# Add your user to the 'docker' group
sudo usermod -aG docker minikubes && newgrp docker

注意:若是用root账户,在启动minikube时,会提示添加 --force,添加这个配置,可能会存在问题(本人未测试)。建议创建一个root权限的账户,而不是直接使用root。

2、安装minikube

要使用二进制下载在x86-64 Linux上安装最新的 minikube稳定版本:
 

# 切换到minikube账户
sudo minikube
# 下载
sudo curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# 安装
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 查看minikube版本
minikube version
# kubectl安装
minikube kubectl
# 使用命令 minikube start 会从 Docker Hub 上拉取镜像,以当前最新版本的 Kubernetes 启动集群
minikube start --image-mirror-country='cn' --driver=docker --kubernetes-version=v1.23.3
# 执行上述命令后,输出如下:
😄  minikube v1.26.1 on Centos 7.5.1804 (amd64)
✨  Using the docker driver based on user configuration
✅  Using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
📌  Using Docker driver with root privileges
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
    > registry.cn-hangzhou.aliyun...:  386.61 MiB / 386.61 MiB  100.00% 7.26 Mi
    > registry.cn-hangzhou.aliyun...:  0 B [_____________________] ?% ? p/s 34s
🔥  Creating docker container (CPUs=2, Memory=2200MB) ...
    > kubelet.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubeadm.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubectl.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubeadm:  43.12 MiB / 43.12 MiB [-------------] 100.00% 5.04 MiB p/s 8.8s
    > kubectl:  44.43 MiB / 44.43 MiB [--------------] 100.00% 4.06 MiB p/s 11s
    > kubelet:  118.75 MiB / 118.75 MiB [------------] 100.00% 7.05 MiB p/s 17s

    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔎  Verifying Kubernetes components...
    ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5
🌟  Enabled addons: default-storageclass, storage-provisioner
💡  kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

3、与您的集群交互

您还可以通过将以下内容添加到您的 shell 配置中来使您的生活更轻松:

alias kubectl="minikube kubectl --"

注意:在kubectl安装好之后,直接使用kubectl时,会提示命令不存在,而是需要使用minikube kubectl …,解决此问题的方法是
vi ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
alias kubectl="minikube kubectl --"
PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

source  ~/.bash_profile

如果您已经安装了 kubectl,您现在可以使用它来访问您闪亮的新集群

# minikube 状态查询
[minikube@docker ~]$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

[minikube@docker ~]$ minikube node list
minikube        192.168.49.2
[minikube@docker ~]$
# 使用kubectl创建k8s。先查看kubectl的版本
[minikube@docker ~]$ 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"}
[minikube@docker ~]$ 
[minikube@docker ~]$ kubectl get po -A
NAMESPACE              NAME                                         READY   STATUS    RESTARTS      AGE
kube-system            coredns-65c54cc984-l2hq5                     1/1     Running   0             35m
kube-system            etcd-minikube                                1/1     Running   0             35m
kube-system            kube-apiserver-minikube                      1/1     Running   0             35m
kube-system            kube-controller-manager-minikube             1/1     Running   0             35m
kube-system            kube-proxy-mlngh                             1/1     Running   0             35m
kube-system            kube-scheduler-minikube                      1/1     Running   0             35m
kube-system            storage-provisioner                          1/1     Running   1 (35m ago)   35m
kubernetes-dashboard   dashboard-metrics-scraper-7db978b848-z2h2d   1/1     Running   0             18m
kubernetes-dashboard   kubernetes-dashboard-6f4c897964-98m7r        1/1     Running   0             18m
[minikube@docker ~]$

或者,minikube 可以下载适当版本的 kubectl,您应该可以像这样使用它:

[minikube@docker ~]$ minikube kubectl -- get po -A
NAMESPACE              NAME                                         READY   STATUS    RESTARTS      AGE
kube-system            coredns-65c54cc984-l2hq5                     1/1     Running   0             36m
kube-system            etcd-minikube                                1/1     Running   0             36m
kube-system            kube-apiserver-minikube                      1/1     Running   0             36m
kube-system            kube-controller-manager-minikube             1/1     Running   0             36m
kube-system            kube-proxy-mlngh                             1/1     Running   0             36m
kube-system            kube-scheduler-minikube                      1/1     Running   0             36m
kube-system            storage-provisioner                          1/1     Running   1 (35m ago)   36m
kubernetes-dashboard   dashboard-metrics-scraper-7db978b848-z2h2d   1/1     Running   0             18m
kubernetes-dashboard   kubernetes-dashboard-6f4c897964-98m7r        1/1     Running   0             18m
[minikube@docker ~]$

最初,某些服务(例如 storage-provisioner)可能尚未处于运行状态。这是集群启动期间的正常情况,并且会立即自行解决。为了进一步了解您的集群状态,minikube 捆绑了 Kubernetes Dashboard,让您可以轻松适应新环境:

[minikube@docker ~]$ minikube dashboard
🔌  Enabling dashboard ...
    ▪ Using image docker.io/kubernetesui/dashboard:v2.7.0
    ▪ Using image docker.io/kubernetesui/metrics-scraper:v1.0.8
💡  Some dashboard features require the metrics-server addon. To enable all features please run:

        minikube addons enable metrics-server


🤔  Verifying dashboard health ...
🚀  Launching proxy ...
🤔  Verifying proxy health ...
🎉  Opening http://127.0.0.1:41597/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
👉  http://127.0.0.1:41597/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

4、部署应用程序

创建一个示例部署并在端口 8080 上公开它:

kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl run myngx --image=nginx:alpine

这可能需要一点时间,但是当您运行时,您的部署将很快出现:

kubectl get services hello-minikube
kubectl describe pod ***

访问此服务的最简单方法是让 minikube 为您启动 Web 浏览器:

minikube service hello-minikube

或者,使用 kubectl 转发端口:

kubectl port-forward service/hello-minikube 7080:8080

现在可以使用http://localhost:7080/访问

5、管理您的集群

#在不影响已部署应用程序的情况下暂停 Kubernetes:
minikube pause
#取消暂停暂停的实例:
minikube unpause
#停止集群:
minikube stop
#增加默认内存限制(需要重新启动):
minikube config set memory 16384
#浏览易于安装的 Kubernetes 服务目录:
minikube addons list
#创建第二个运行旧 Kubernetes 版本的集群:
minikube start -p aged --kubernetes-version=v1.16.1
#删除所有 minikube 集群:
minikube delete --all

6、常用命令

# 部署应用
kubectl apply -f app.yaml
# 查看 deployment
kubectl get deployment
# 查看 pod
kubectl get pod -o wide
# 查看 pod 详情
kubectl describe pod pod-name
# 查看 log
kubectl logs pod-name
# 进入 Pod 容器终端, -c container-name 可以指定进入哪个容器。
kubectl exec -it pod-name -- bash
# 伸缩扩展副本
kubectl scale deployment test-k8s --replicas=5
# 把集群内端口映射到节点
kubectl port-forward pod-name 8090:8080
# 查看历史
kubectl rollout history deployment test-k8s
# 回到上个版本
kubectl rollout undo deployment test-k8s
# 回到指定版本
kubectl rollout undo deployment test-k8s --to-revision=2
# 删除部署
kubectl delete deployment test-k8s

# 查看全部
kubectl get all
# 重新部署
kubectl rollout restart deployment test-k8s
# 命令修改镜像,--record 表示把这个命令记录到操作历史中
kubectl set image deployment test-k8s test-k8s=ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v2-with-error --record
# 暂停运行,暂停后,对 deployment 的修改不会立刻生效,恢复后才应用设置
kubectl rollout pause deployment test-k8s
# 恢复
kubectl rollout resume deployment test-k8s
# 输出到文件
kubectl get deployment test-k8s -o yaml >> app2.yaml
# 删除全部资源
kubectl delete all --all

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值