[TOC]
# 1.新建unzip文件夹
mkdir /opt/modules/unzip
# 2.将unzip-6.0-19.el7.x86_64.rpm上传到/opt/modules/unzip下安装unzip
rpm -Uvh unzip-6.0-19.el7.x86_64.rpm
# 3.查看是否安装成功
rpm -qa | grep unzip
输出unzip版本号表示安装成功
# 1.新建docker文件夹
mkdir /opt/modules/docker
# 2.将docker19-rpm.zip上传到/opt/modules/docker下,进入目录,进行解压缩操作
cd /opt/modules/docker
unzip docker19-rpm.zip
# 3.安装docker
rpm -ivh *.rpm --force --nodeps
# 4.启动docker并设置开机自启
systemctl enable docker && systemctl start docker
# 5.查看是否安装成功
docker --version
输出docker版本号表示安装成功
cd /etc/docker
read -s PASSWORD
输入上条命令后,命令行会空一行,此时自行定义一个密码变量
read -s SERVER
输入上条命令后,命令行会空一行,此时输入当前服务器ip
openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 2048
生成ca证书,填写配置信息
openssl req -new -x509 -passin "pass:$PASSWORD" -days 365 -key ca-key.pem -sha256 -out ca.pem
生成server证书私钥文件
openssl genrsa -out server-key.pem 2048
生成server证书请求文件
openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr
使用CA证书及CA密钥以及上面的server证书请求文件进行签发,生成server自签证书
openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem
生成client证书RSA私钥文件
openssl genrsa -out key.pem 2048
生成client证书请求文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
sh -c 'echo "extendedKeyUsage=clientAuth" > extfile.cnf'
生成client自签证书(根据上面的client私钥文件、client证书请求文件生成)
openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem -extfile extfile.cnf
chmod 0400 ca-key.pem key.pem server-key.pem
chmod 0444 ca.pem server-cert.pem cert.pem
rm client.csr server.csr
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd \
--tlsverify \
--tlscacert=/etc/docker/ca.pem \
--tlscert=/etc/docker/server-cert.pem \
--tlskey=/etc/docker/server-key.pem \
-H tcp://0.0.0.0:2376 \
-H unix:///var/run/docker.sock \
-H fd:// --containerd=/run/containerd/containerd.sock
# c
systemctl daemon-reload && systemctl restart docker
# 验证docker服务已经具备了被远程访问的能力
# 1.将pythonimages.tar上传至服务器,并执行命令:
docker load < pythonimage.tar
# 2.将tensorflowimages.tar上传至服务器,并执行命令:
docker load < tensorflowimage.tar
# 3.查看已有镜像
docker images
### 创建目录
mkdir /opt/modules/minio
mkdir /opt/modules/minio/data
### 进入目录
cd /opt/modules/minio
### 将minio安装文件上传到/opt/modules/minio下
### 赋权
chmod +x minio
### /etc/profile文件添加环境变量
vim /etc/profile
export MINIO_ROOT_USER=minio
export MINIO_ROOT_PASSWORD=minio123
### 使环境变量命令参数详解生效
source /etc/profile
### 后台启动minio(--address参数为端口号设置)
nohup /opt/modules/minio/minio server --address 0.0.0.0:9000 /opt/modules/minio/data/ > /opt/modules/minio/minio.log 2>&1 &
浏览器输入服务器ip:9000,成功进入minio页面,安装成
### 输入用户名minio,密码minio123后进入minio控制台,依次创建存储
”algmode,”algorithm”,”algtemplate”,”dataset”,”publishedalgorithm”,”tensorboardfile”,”visiarguartifact”.
# 将etcd安装文件上传到/opt/modules/argo下,解压,并将文件放入系统路径中
mkdir /opt/modules/argo
cd /opt/modules/argo
tar zxvf etcd-v3.5.1-linux-amd64.tar.gz
cd etcd-v3.5.1-linux-amd64
cp etcd /usr/bin/
cp etcdctl /usr/bin/
# 创建一个服务描述文件,放入systemd的服务目录
# 进入目录
cd /usr/lib/systemd/system
vim etcd.service # 添加如下内容
[Unit]
Description=Etcd Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
ExecStart=/usr/bin/etcd
[Install]
WantedBy=multi-user.target
# 执行命令
gunzip argo-linux-amd64.gz
chmod +x argo-linux-amd64
mv ./argo-linux-amd64 /usr/local/bin/argo
# 查看:
argo version
kubectl create ns argo
# 1.将argo安装文件quick-start-postgres.yaml和argo-images.tar 上传到/opt/modules/argo下
docker load -i argo-images.tar
# 共5个
# argoproj/argocli:v3.0.3
# minio/minio:RELEASE.2019-12-17T23-16-33Z
# postgres:12-alpine
# argoproj/argoexec:v3.0.3
# argoproj/workflow-controller:v3.0.3
# 2.执行命令进行安装
kubectl apply -n argo -f quick-start-postgres.yaml
# (卸载方式:kubectl delete -n argo -f quick-start-postgres.yaml)
# 3.查看服务
kubectl get pods -n argo
# 当集群是基于RBAC(Role-Based Access Control,基于角色的访问控制)时,默认账户有很多的限制,比如不能支持组件,输出等等。执行以下命令授权默认的服务账户在默认的namespace中拥有admin的权限
kubectl create rolebinding default-admin --clusterrole=admin --serviceaccount=default:default
kubectl patch svc argo-server -n argo -p '{"spec": {"type": "LoadBalancer"}}'
kubectl patch svc minio -n argo -p '{"spec": {"type": "LoadBalancer"}}'
# 通过kubectl get svc -n argo查看服务 ,查看映射后的端口(红框选中)
# 根据 IP+argo-server端口的方式访问 argo ui界面,根据Ip+minio端口的方式访问argo-minio界面,用户名为admin,密码为password
若出现argo-server,postgres及workflow-controller Pod 状态出现问题。
# 解决方案:将hugepages关闭。将所有的节点hugepage关闭,pg中参数huge_page=try会默认不选择hugepage,因此能够运行成功。
# 执行命令:
echo "vm.nr_hugepages=0" >> /etc/sysctl.conf
# 生效:(执行如下命令,或者执行/sbin/sysctl -p )
sysctl -p
# 查看
kubectl get pod -o wide -l app=postgres -n argo
软件 | 版本 |
---|---|
minio | 2021-06-17T00:10:46Z |
argo | v3.0.2 |