minikube搭建K8S集群
1、部署环境•华为云 ECS•操作系统: Linux CentOS 7.9 64 位• CPU & 内存:2 核(vCPU) 4 GiB•硬盘:需要 20G•网络:需要网络,要下载、访问•容器:需要先安装 Docker, Docker 版本:24.0.4• Kubernetes 版本:1.23.82.安装 docker 并启动(1)移除以前 docker 相关包sudoyum...
1、部署环境
• 华为云 ECS
• 操作系统: Linux CentOS 7.9 64 位
• CPU & 内存:2 核(vCPU) 4 GiB
• 硬盘:需要 20G
• 网络:需要网络,要下载、访问
• 容器:需要先安装 Docker, Docker 版本:24.0.4
• Kubernetes 版本:1.23.8
2.安装 docker 并启动
(1)移除以前 docker 相关包
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
(2)配置 yum 源
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3)安装 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
也可以指定某个版本进行安装,例如:
# 这只是个例子
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
(4)启动
systemctl enable docker --now
(5)配置加速
这里额外添加了 docker 的生产环境核心配置 cgroup
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://lkb2w75n.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
其中,registry-mirrors 可以换成自己的加速地址
3.安装 Minikube
(1)下载并安装 Minikube
sudo curl -LO https://storage.googleapis.com/minikube/releases/v1.29.0/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube
(2)查看 Minikube 版本
minikube version
4.启动 Minikube
(1)启动集群
minikube start --image-mirror-country='cn' --kubernetes-version=v1.23.8
发现报错了,意思是不能用 root 用户运行这个命令。
我们直接加上 --force,强制执行
minikube start --force --image-mirror-country='cn' --kubernetes-version=v1.23.8
命令参数:
--image-mirror-country:cn 指定为国内镜像源;
--cpus=2: 为 minikube 虚拟机分配 CPU 核数;
--memory=2000mb: 为 minikube 虚拟机分配内存数;
--kubernetes-version=***: 指定部署的kubernetes版本;
--driver=docker:指定驱动,默认是 docker;
(2)验证
minikube status
查看版本
minikube kubectl version
服务端版本和客户端版本都正常展示了!
查看 minikube 容器 (Docker)
docker ps
查看运行的全部 pod
minikube kubectl -- get pods -A
5.安装 kubectl
由于 minikube 内置的 kubectl 命令功能不全,所以最好独立安装一个 kubectl
用以下命令下载最新发行版:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
安装 kubectl:
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
查看版本的详细信息:
kubectl version --client --output=yaml
6.启动 dashboard
1.启动并显示代理地址
minikube dashboard --url
这个 URL 只能在宿主机内部访问,在宿主机之外无法直接访问,需要设置 kubectl proxy 代理或其它方式
2.设置 kubectl proxy 代理
minikube kubectl -- proxy --address='0.0.0.0' --accept-hosts='^*$' &
需要修改 ECS 防火墙规则,允许入方向的 8001 端口通行。
在宿主机之外浏览器访问:
http://ECS公网IP:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
3.查看 dashboard 状态
kubectl get svc -n kubernetes-dashboard
或者查看全部的 pod
kubectl get pod -A
2 个 kubernetes-dashboard 都是 Running 状态。
7.部署一个应用
部署一个 nginx,并通过 IP 外网访问
(1)创建 deployment
kubectl create deployment test-nginx --image=nginx:1.7.9
(2)查看
kubectl get pod,deploy
发现 pod 和 deployment 都已经部署成功了
(3)暴漏 service 端口
kubectl expose deploy test-nginx --port=80 --type=NodePort
查看 service
kubectl get svc
如果是 kubernetes 集群,直接访问 集群中的任意一个 IP:80 即可访问,但是我们安装的是 minikube,所以不能用这个方式,需要对 80 端口转发
(4)转发端⼝
kubectl port-forward --address 0.0.0.0 service/test-nginx 8080:80 &
为了方便区分,将创建的 service(test-nginx)80 端口转发到 8080
访问 http://ECS 公网 IP:8080/
部署了一个应用后,我们回过头来看 dashboard
看到我们用命令部署的 nginx 相关的 pod、deployment、service 都展现出来的。
• 不懂Neo4j?没关系,一起学
• 不懂Neo4j?没关系,先学增删改查
• SpringBoot+Neo4j在社交电商中,讲述你是怎么被绑定为下线的
• 请别再问我什么是分布式事务
• 分布式事务解决方案之2PC、TCC
• 分布式事务解决方案之可靠消息最终一致性、最大努力通知
• 天天都用消息队列,却不知道为啥要用MQ,这就有点尴尬了
• 拜托,面试别再问我数据库的分库分表!
更多推荐
所有评论(0)