使用minikube安装K8S单节点集群(v1.30.0)

注意事项:

      用minikube搭建k8s环境时,既支持通过虚拟化技术运行,也可以选择不通过虚拟化技术直接运行在服务器上。所以对于一些不支持虚拟化技术的云服务器实例,只能通过后者安装运行k8s,也无须安装KVM或VirtualBox等虚拟化工具,不过还是依赖于Docker环境,所以需要先安装Docker,具体可参考Ubuntu上安装Docker。

Note: Minikube also supports a --vm-driver=none option that runs the Kubernetes components on the host and not in a VM. Using this driver requires Docker and a Linux environment but not a hypervisor. It is recommended to use the apt installation of docker from Docker, when using the none driver. The snap installation of docker does not work with minikube.

1. 安全前准备工作

##hosts绑定

[root@node1 ~]# cat /etc/hosts
127.0.0.1 VM-0-12-centos VM-0-12-centos
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4

::1 VM-0-12-centos VM-0-12-centos
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
172.16.0.12 node1

#禁用swap
[root@node1 ~]#swapoff -a ; sed -i '/fstab/d' /etc/fstab

#更新yum源
[root@node1 ~]#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo


#安装docker
[root@node1 ~]#yum install docker-ce -y
[root@node1 ~]#ysystemctl enable docker --now
[root@node1 ~]#cat > /etc/docker/daemon.json <<EOF
{
   "registry-mirrors": ["https://frz7i079.mirror.aliyuncs.com"],
    "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
[root@node1 ~]#systemctl restart docker

2. 安装minikube

[root@node1 ~]#curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
[root@node1 ~]#sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64





[root@node1 ~]# minikube version
minikube version: v1.33.1
commit: 5883c09216182566a63dff4c326a6fc9ed2982ff
查看启动状态
$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

3. 安装cri-dockerd

       从kubernetes 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作为kubernetes的容器运行时了,即从kubernetesv1.24开始不再使用docker了。

但是如果想继续使用docker的话,可以在kubelet和docker之间加上一个中间层cri-docker

 https://github.com/Mirantis/cri-dockerd/tags 下载cri-dockerd

###安装
[root@node1 ~]#tar zxvf  cri-dockerd-0.3.15.tar.gz
[root@node1 ~]#cd cri-dockerd
[root@node1 ~]#cp cri-dockerd /usr/bin

创建启动文件

启动文件从下面链接找到 https://github.com/Mirantis/cri-dockerd/tree/master/packaging/systemd

#cri-docker.service
[root@node1 ~]# cat /usr/lib/systemd/system/cri-docker.service
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket

[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

StartLimitBurst=3

StartLimitInterval=60s

LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

TasksMax=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target



###cri-docker.socket
[root@node1 ~]#cat /usr/lib/systemd/system/cri-docker.socket
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service

[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target


启动cri-docker并设置开机自动启动 

[root@node1 ~]#systemctl daemon-reload ; systemctl enable cri-docker --now
Created symlink from /etc/systemd/system/multi-user.target.wants/cri-docker.service to /usr/lib/systemd/system/cri-docker.service.

[root@node1 ~]# systemctl is-active cri-docker

4. 安装kubectl (可选)

 

# kubectl安装过程
[root@node1 ~]#curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.30.0/bin/linux/amd64/kubectl
[root@node1 ~]#chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl




##配置命令别名,方便操作
[root@node1 ~]# echo 'alias kubectl="minikube kubectl --"' >> /etc/profile
[root@node1 ~]# source /etc/profile

 5. 安装、启动K8S集群

[root@node1 ~]# minikube start --driver=none --force --registry-mirror=https://registry.docker-cn.com --kubernetes-version=v1.30.0 --image-mirror-country=cn --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers 

测试 

 6. minikube常用命令

# 查看minikube版本
minikube version

# 查看minikube状态
minikube status

# 查看minikube节点信心
minikube node list

# 查看minikube插件
minikube addons list	

# 设置dashboard启动
minikube addons enable dashboard

# 停止dashboard
minikube addons disable dashboard

问题

1. 如集群无法调度,可以去除master污点

[root@node1 ~]#kubectl taint nodes node1 node-role.kubernetes.io/control-plane:NoSchedule-

2. 如执行minikube start出现Unable to pick a default driver. Here is what was considered, in preference ord问题 

使用  minikube start --driver=none

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值