1.1 Minikube部署單節點K8s
-
Minikube是由Kubernetes社區維護的單機版的Kubernetes集群,支持macOS, Linux, andWindows等多種操作系統平臺,使用最新的官方stable版本,并支持Kubernetes的大部分功能,從基礎的容器編排管理,到高級特性如負載均衡、Ingress,權限控制等。非常適合作為Kubernetes入門,或開發測試環境使用。Minikube實際是跑在本地的虛擬機中的,所以,需要先安裝一套Hypervisor。
-
官方地址:minikube start | minikube
1.1.1 安裝部署Docker-ce
[root@minikube ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo [root@minikube ~]# sed -i 's+download.docker.com+mirrors.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo [root@minikube ~]# sed -i 's/$releasever/7Server/g' /etc/yum.repos.d/docker-ce.repo [root@minikube ~]# yum install docker-ce -y [root@minikube ~]# tee /etc/docker/daemon.json <<-'EOF' { "exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": [ "https://dbckerproxy.com", "https://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://ccr.ccs.tencentyun.com" ] } EOF ? [root@minikube ~]# systemctl daemon-reload [root@minikube ~]# systemctl enable --now docker.service [root@minikube ~]# docker --version Docker version 20.10.21, build baeda1f
1.1.2 安裝Minikube
[root@minikube ~]# wget -c https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm [root@minikube ~]# yum install minikube-latest.x86_64.rpm -y [root@minikube ~]# minikube version minikube version: v1.33.1 commit: 5883c09216182566a63dff4c326a6fc9ed2982ff [root@minikube ~]# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 [root@minikube ~]# install minikube-linux-amd64 /usr/local/bin/minikube
1.1.3 禁用swap分區
[root@minikube ~]# sed -i 's/.*swap.*/# &/' /etc/fstab [root@minikube ~]# swapoff -a
1.1.4 安裝kubectl
[root@minikube ~]# curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl [root@minikube ~]# chmod +x ./kubectl [root@minikube ~]# mv kubectl /usr/local/bin/ [root@minikube ~]# kubectl version --client Client Version: v1.30.1 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
1.1.5 升級內核并配置參數
[root@minikube ~]# cat > /etc/sysctl.d/kubernetes.conf <<EOF net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1 net.ipv4.ip_forward=1 net.ipv4.tcp_tw_recycle=0 vm.swappiness=0 vm.overcommit_memory=1 vm.panic_on_oom=0 fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=1048576 fs.file-max=52706963 fs.nr_open=52706963 net.ipv6.conf.all.disable_ipv6=1 net.netfilter.nf_conntrack_max=2310720 EOF ? [root@minikube ~]# sysctl -p /etc/sysctl.d/kubernetes.conf
1.1.6 安裝cri-docker
[root@minikube ~]# wget -c https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.13/cri-dockerd-0.3.13-3.el7.x86_64.rpm [root@minikube ~]# yum install cri-dockerd-0.3.13-3.el7.x86_64.rpm -y [root@minikube ~]# sed -i 's#^ExecStart=.*#ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9#' /usr/lib/systemd/system/cri-docker.service [root@minikube ~]# systemctl daemon-reload [root@minikube ~]# systemctl restart docker [root@minikube ~]# systemctl enable --now cri-docker.service
1.1.7 安裝crictl
[root@minikube ~]# VERSION="v1.30.0" [root@minikube ~]# wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz [root@minikube ~]# tar zxf crictl-$VERSION-linux-amd64.tar.gz -C /usr/bin [root@minikube ~]# rm -f crictl-$VERSION-linux-amd64.tar.gz
1.1.8 啟動minikube
[root@minikube ~]# yum install conntrack -y [root@minikube ~]# minikube start --vm-driver=none --image-mirror-country=cn --registry-mirror='https://ckdhnbk9.mirror.aliyuncs.com' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --driver=docker --force
1.1.9 檢查服務是否正常
[root@minikube ~]# mv /root/.kube /root/.minikube $HOME [root@minikube ~]# chown -R $USER $HOME/.kube $HOME/.minikube [root@minikube ~]# kubectl get cs Warning: v1 ComponentStatus is deprecated in v1.19+ NAME ? ? ? ? ? ? ? ? STATUS ? MESSAGE ? ERROR controller-manager ? Healthy ? ok ? ? ? ? scheduler ? ? ? ? ? Healthy ? ok ? ? ? ? etcd-0 ? ? ? ? ? ? ? Healthy ? ok ? ? ? ? ? [root@minikube ~]# kubectl get node NAME ? ? ? STATUS ? ROLES ? ? ? ? ? AGE ? VERSION minikube ? Ready ? control-plane ? 22m ? v1.30.0 [root@minikube ~]# minikube status minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured ? [root@minikube ~]# kubectl get pod -n kube-system NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? READY ? STATUS ? ? ? ? ? ? RESTARTS ? ? ? AGE coredns-7db6d8ff4d-7ztfs ? ? ? ? ? 1/1 ? ? Running ? ? ? ? ? ?1 (84s ago) ? 22m etcd-minikube ? ? ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? ? ? ? ? ?1 (9m45s ago) ? 22m kube-apiserver-minikube ? ? ? ? ? ?1/1 ? ? Running ? ? ? ? ? ?1 (3m20s ago) ? 22m kube-controller-manager-minikube ? 1/1 ? ? Running ? ? ? ? ? ?1 (9m45s ago) ? 22m kube-proxy-dfqnf ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? ? ? ? ? ?1 (9m45s ago) ? 22m kube-scheduler-minikube ? ? ? ? ? ?1/1 ? ? Running ? ? ? ? ? ?1 (9m45s ago) ? 22m storage-provisioner ? ? ? ? ? ? ? ?1/1 ? ? Running ? ? ? ? ? ?3 (2m34s ago) ? 22m