跳到主要内容
版本:v3&v6

开启/关闭 HTTPS

注意:该文档适用于V3版本;如果从V3版本升级到V6版,可参考配置HTTPS://域名访问调整,如有疑问请联系ONES工程师

配置参数

配置项类型示例描述
baseURLstring"https://ones.example.com"ONES 服务域名地址
tlsEnablebooleantrue是否开启TLS(https应该打开)
onesIngressSSLCertSecretNamestring"all-myones-net-tls"ssl密钥名字

操作步骤

开启HTTPS

准备域名以及准备域名相对应的无密码证书文件并复制到ONES系统的服务器中。例如放入/tmp目录下

导入TLS证书为 k3s secret

# 如下,/tmp 目录下有证书文件 test.crt 和密钥文件 test.key,使用其创建名为 all-myones-net-tls 的 secret
CERT_NAME=all-myones-net-tls # 名称,建议使用域名+tls,如这个是域名 all.myones.net 的 tls secret 名
KEY_FILE=/tmp/test.key
CERT_FILE=/tmp/test.crt
kubectl -n ones create secret tls ${CERT_NAME} --key ${KEY_FILE} --cert ${CERT_FILE}

# 确认创建
kubectl -n ones get secret ${CERT_NAME}

进入 ones pod

ones-ai-k8s.sh

安装 ingress-nginx-controller

make setup-ingress-nginx-controller

# 确认nginx-controller启动
kubectl wait --namespace ingress-nginx \
--for=condition=ready pod \
--selector=app.kubernetes.io/component=controller \
--timeout=120s

修改配置

vim config/private.yaml

修改如下配置(如果不存在对应配置,则自行在最后一行加入)

#<url>替换成具体域名(https开头),例如https://ones.example.com
baseURL: <url> # ONES 服务域名地址(❗️注意必须要协议开头,这里是https://)
tlsEnable: true #开启TLS
onesIngressSSLCertSecretName: all-myones-net-tls #ssl密钥名字可任意取,与上面命令的 CERT_NAME 对应上即可

应用配置

make setup-ones
# 确认 ingress 创建
kubectl -n ones get ingress
# 注意:ingress 创建完成后,最多需要几分钟等待controller配置变更

验证

等待服务重启完成并等待几分钟后,直接访问HTTPS域名地址。例如 https://ones.example.com,如可正常访问则正常。

如果验证时发现返回的证书是 Kubernetes Ingress Controller Fake Certificate ,请确保访问所用域名,与配置的域名与证书生成使用的域名一致。

如果节点的网络环境不方便直接访问,可以先直接在本地检查:

HOST=local.test  # 换成自己的域名
curl --resolve ${HOST}:443:127.0.0.1 https://${HOST} -vv
# 观察终端输出中的 Server certificate 区块下的 subject 是否自己域名,以及其过期时间等

更换 TLS 证书

先参考上文,确认是采用本文的方式添加的SSL证书;然后删除掉原来的secret,并使用新证书创建同名的即可。

# 如下,/tmp 目录下有证书文件 test.crt 和密钥文件 test.key,使用其创建名为 all-myones-net-tls 的 secret
CERT_NAME=all-myones-net-tls
KEY_FILE=/tmp/test.key
CERT_FILE=/tmp/test.crt
# 删除掉原来的
kubectl -n ones delete secret ${CERT_NAME}
# 创建新的
kubectl -n ones create secret tls ${CERT_NAME} --key ${KEY_FILE} --cert ${CERT_FILE}
# 确认创建
kubectl -n ones get secret ${CERT_NAME}

然后最多几分钟等待controller完成配置变更即可验证。

关闭HTTPS

进入 ones pod

ones-ai-k8s.sh

修改配置

vim config/private.yaml

删除如下配置(在配置前面加#号注释掉,或者直接删除)

baseURL: <url>    # ONES 服务域名地址
tlsEnable: true #开启TLS
onesIngressSSLCertSecretName: all-myones-net-tls #ssl密钥名字

应用配置

make setup-ones

验证

等待服务重启完成并等待几分钟后,直接访问HTTPS域名地址。例如 https://ones.example.com,不能正确访问则说明HTTPS成功关闭。