使用kind部署实验用k8s集群,部署nginx服务挂载s3目录实例
需求
需要在内网访问S3目录,且S3不能开启公网访问。
解决方案
1.使用VPC Endpoint服务,内网与VPC打通,实现通过VPC Endpoint访问S3。
遇到的问题:可以访问单个文件,但只支持以xml格式列出目录,不支持html格式。
2.部署nginx服务,使用s3fs挂载S3目录,再以nginx_autoindex自动生成挂载目录索引并提供访问。
本案例选择方案2
概要
1.使用kind搭建k8s集群
2.在k8s集群中部署nginx服务,并配置S3挂载和访问
3.其他
使用kind搭建k8s集群
kind为实验用微型k8s集群部署工具,他可以使用docker生成一个容器做为k8s集群的node。
- yum安装docker
#卸载旧版本(如果安装过旧版本的话)
yum list installed | grep docker
yum remove docker docker-common docker-selinux docker-engine
#yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装
yum install -y docker-ce
#启动服务
systemctl start docker
#开机启动
systemctl enable docker
#验证版本
docker version
Client: Docker Engine - Community
Version: 23.0.1
API version: 1.42
Go version: go1.19.5
Git commit: a5ee5b1
Built: Thu Feb 9 19:51:00 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 23.0.1
API version: 1.42 (minimum version 1.12)
Go version: go1.19.5
Git commit: bc3805a
Built: Thu Feb 9 19:48:42 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.18
GitCommit: 2456e983eb9e37e47538f59ea18f2043c9a73640
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
#在daemon.json中配置docker虚拟网段,防止IP冲突
[userlocal@localhost ~]$ cat /etc/docker/daemon.json
{
"bip":"192.168.1.1/24"
}
- 安装kubectl
#下载安装包
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
#安装
install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
#验证版本
/usr/local/bin/kubectl version
WARNING: This versio