使用说明
建议直接拉取镜像:
docker pull forever4526/tls:{tag}
编写yaml后,使用kubectl apply应用
镜像运行必备环境变量
中转服务器与pod相关 CLUSTER_HOST = "10.0.0.4" //集群相对ip NGINX_HOST = "10.0.0.1" //nginx主机地址 NGINX_USER = "nginx" //ssh链接nginx主机的用户名 NGINX_CERT_DIR = "/etc/nginx/certs" //存放证书的目录 NGINX_CONF_DIR = "/etc/nginx/conf.d" //存放server配置块的目录 NAMESPACE = "basic" //pod运行的命名空间 TEMP_DIR = "/tmp/nginx_certs" //临时目录 RSA_DIR = "/root/.ssh" //存放 SSH 密钥对 PUBLIC_KEY_COMMENT = "generated-key" //ssh公钥后缀
上传重试相关 MAX_RETRIES = 10 // 最大重试次数 RETRY_DELAY = 20 // 每次重试的时间间隔(秒)
创建serviceAccount供其使用
关键:监听单namespace
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["watch", "get", "list"]
监听全部namespace需要更高的权限,default用户就无法使用了,关键的rules是一样的,只不过需要自己创建用户,绑定权限,部署时绑定创建的用户即可
请注意
部署完成之后,需要进入容器,手动复制ssh公钥到中转服务器的对应用户下的.ssh/authorized_keys中
配置完公钥之后,需要在pod中手动进行一次ssh远程连接,目的是为了验证指纹信息(目前我还没自动实现)
可以使用固定的ssh密钥对,只是我的环境走docker hub中转镜像比较方便,所以就写了一个通用的(个人感觉麻烦程度差不多)