1.环境信息
前置所需:
操作系统:Oracle Linux 7.9
虚拟机配置:CPU:4核 内存:4G
容器:docker 26.1.4
安装minikube后环境:
minikube: v1.33.1
kubernetes:v1.23.3
minukube体验说明:使用VirtualBox安装的虚拟机Oracle Linux7.9(已经安装了Docker容器),然后在这环境中安装minikube单个k8s节点,并安装dashboard使用浏览器查看k8s的详细信息,并在节点中创建nginx,使用浏览器访问到服务。
2.安装minikube
minikube官网Welcome! | minikubeminikube is local Kuberneteshttps://minikube.sigs.k8s.io/docs/
2.1 minkube环境要求
- 2 CPUs or more
- 2GB of free memory
- 20GB of free disk space
- Internet connection
- Container or virtual machine manager, such as: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation
2.2 安装minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
2.3启动minikube cluster
minikube start --image-mirror-country=cn \
--image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' \
--vm-driver=none --kubernetes-version=v1.23.3
2.3.1 出错,缺少conntrack-tools
Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.23.3 requires crictl to be installed in root's path
解决:
#安装conntrack-tools
yum install conntrack-tools -y
rpm -qa | grep conntrack-tools
再次执行,成功。
2.4 查看minikube创建的k8s集群的pod及node信息
minikube kubectl -- get pods -A
minikube kubectl -- get nodes
2.5 配置alias缩减minikube kubectl指令
1.临时配置,当前会话生效
alias kubectl="minikube kubectl --"
2.永久生效,配置当前用户.bashrc文件
vi ~/.bashrc
cat ~/.bashrc
source ~/.bashrc
验证效果:
kubectl get pods -n kube-system (实际应该是minikube kubectl get pods -n kube-system)
3.安装dashboard
有一个坑,安装完minikube的集群完,文件/etc/docker/daemon.json 镜像加速的配置没了,导致后续没法下载镜像。
#创建仪表盘dashboard
minikube dashboard
问题:dashboard一直verifying中,查看问题。
kubectl get pods -A
一直在创建中或拉取镜像。
排查问题:
#查看其中的一个,发现是镜像拉取失败的原因,应该是访问不了的原因。
kubectl describe pods kubernetes-dashboard-6f4c897964-8d7rl -n kubernetes-dashboard
解决问题:
从国内库下载镜像metrics-scraper、dashboard
#手动pull
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper:v1.0.8
#手动pull
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.7.0
太难了,镜像加速最近也很不稳定(不科学下太难了),两个都下载好了。
再重新执行下minikube dashboard
如下会有一个连接地址,这个只能当前虚拟机内才可以访问。
http://127.0.0.1:36991/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
查看两个dashboard的pod都正常了
要想从当前宿主机电脑访问执行如下命令 --port指定虚拟机暴露端口,--address为当前虚拟机ip
kubectl proxy --port=9900 --address='192.168.56.103' --accept-hosts='^.*' &
浏览器访问当前路径
http://192.168.56.103:9900/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
4.部署nginx应用
4.1创建nginx
kubectl create deployment my-nginx --image=hub.atomgit.com/library/nginx:alpine
4.2暴露到集群外
kubectl expose deployment my-nginx --type=NodePort --port=80
4.3获取NodePort端口
kubectl get services
4.4宿主机浏览器访问nginx
如上使用的的port为80:31098/TCP
使用http://虚拟机ip:31098
如http://192.168.56.103:31098
Docker镜像失效参考文章:https://blog.csdn.net/weixin_50160384/article/details/139861337