使用 kubernetes 的 Minio 部署没有按预期工作

Minio deployment using kubernetes doesn't work as expected

我正在试验 kubernetes 和 minio 部署。我有一个 k3s 4 节点集群,每个集群有 4 个 50GB 磁盘。按照说明 here 我已经这样做了:

  1. 首先我安装了krew in order to install the minio and the directpv个运算符。

  2. 我安装了这两个没有问题。

  3. 我使用 kubectl directpv drives format --drives /dev/vd{b...e} --nodes k3s{1...4}

    格式化了节点中每个 可用 硬盘
  4. 然后我继续进行部署,首先我使用 kubectl create namespace minio-tenant-1 创建命名空间,然后我实际创建租户:

    kubectl minio tenant create minio-tenant-1 --servers 4 --volumes 8 --capacity 10Gi --storage-class direct-csi-min-io --namespace minio-tenant-1

  5. 然后我唯一需要做的就是公开要访问的端口,我这样做是:kubectl port-forward service/minio 443:443(我猜这应该是实现此目的的更好方法,因为最后一个命令显然不是永久性的,可能在 kubernetes 集群中使用 LoadBalancer 或 NodePort 类型的服务。

到目前为止一切顺利,但我遇到了一些问题:

mc: Unable to initialize new alias from the provided credentials. Get "https://127.0.0.1/probe-bucket-sign-9aplsepjlq65/?location=": x509: cannot validate certificate for 127.0.0.1 because it doesn't contain any IP SANs

我可以通过简单地添加 --insecure 选项来超越这个,但我不知道为什么它会抛出这个错误,我猜是 k3s 管理 TLS 自动签名证书的方式。

所以...我真的不能使用它...任何帮助将不胜感激,我需要知道我做错了什么。

Minio documentation 中的信息为指导。您必须生成 public 证书。首先生成私钥使用命令:

certtool.exe --generate-privkey --outfile NameOfKey.key

之后创建一个名为 cert.cnf 的文件,内容如下:

# X.509 Certificate options
#
# DN options

# The organization of the subject.
organization = "Example Inc."

# The organizational unit of the subject.
#unit = "sleeping dept."

# The state of the certificate owner.
state = "Example"

# The country of the subject. Two letter code.
country = "EX"

# The common name of the certificate owner.
cn = "Sally Certowner"

# In how many days, counting from today, this certificate will expire.
expiration_days = 365

# X.509 v3 extensions

# DNS name(s) of the server
dns_name = "localhost"

# (Optional) Server IP address
ip_address = "127.0.0.1"

# Whether this certificate will be used for a TLS server
tls_www_server

运行certtool.exe并指定生成证书的配置文件:

certtool.exe --generate-self-signed --load-privkey NameOfKey.key --template cert.cnf --outfile public.crt

最后将public证书放入:

~/.minio/certs/CAs/