ArcGIS Enterprise on kubernetes 10.9.1 ——基于Rancher部署文档

1、系统环境准备(所有节点上操作)

#机器配置(配置越高效果越好)

节点配置
master4C 16GB 200GB
nfs4C 8GB 300GB(至少300G存储、否则后续会报错)
register4C 8GB 200GB
worker18C 32GB 200GB
worker28C 32GB 200GB

1.1更新 host 文件、修改机器名

#在华为云需要修改机器名,在公司服务器上创建虚拟机的时候也可以在网络配置哪里更改
hostnamectl set-hostname m.ags.cd
hostnamectl set-hostname n.ags.cd
hostnamectl set-hostname registry.geoscene.local
hostnamectl set-hostname w1.ags.cd
hostnamectl set-hostname w2.ags.cd
#更新hosts文件 vi /etc/hosts (每个节点都相互放ip和域名)
10.10.10.131 m.ags.cd
10.10.10.132 n.ags.cd
10.10.10.133 registry.geoscene.local
10.10.10.134 w1.ags.cd
10.10.10.135 w2.ags.cd

1.2升级Linux内核

#导入ELRepo仓库的公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#为yum安装ELRepo仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
#查看可用版本
yum --disablerepo=“*” --enablerepo=“elrepo-kernel” list available
#安装最新内核
yum --enablerepo=elrepo-kernel install -y kernel-ml
#查看当前可用内核
sudo awk -F’ ‘$1=="menuentry " {print i++ " : " $2}’ /etc/grub2.cfg
#更改默认启动内核项
grub2-set-default 0 #第0个可用内核
#重启
reboot
#升级完成,可以通过 uname -r 命令进项验证。(reboot才更新过来)
image.png
#以我本机为例,升级后内核版本是:
image.png

1.3 关闭防火墙

#查看防火墙当前状态
systemctl status firewalld.service
#关闭
systemctl stop firewalld.service
systemctl disable firewalld.service

1.4 关闭selinux

#用于临时关闭
setenforce 0
# 用于永久关闭
vi /etc/sysconfig/selinux
将 SELINUX=enforcing 改为 SELINUX=disabled 然后保存退出

1.5 关闭swap分区

sed -ri ‘s/.swap./#&/’ /etc/fstab
cat /etc/fstab
重启
reboot
重启后 free -m 检查一下
image.png

1.6 时间节点同步

yum install ntpdate -y
ntpdate ntp2.aliyun.com

1.7 在所有k8s节点上安装docker,并设置开机自动启动

yum install -y yum-utils
# 添加yum源,这里添加的是阿里云的yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 查看docker版本
yum list docker-ce --showduplicates | sort -r
# 您可以选择其他版本
yum -y install docker-ce-20.10.12-3.el7
#配置docker镜像加速
mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://s2q9fn53.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload
systemctl restart docker
#设置开机启动docker
systemctl start docker.service && systemctl enable docker.service

2、配置共享存储

2.1 安装 NFS 服务(NFS 端)

#安装nfs-utils和rpcbind
yum install -y nfs-utils rpcbind

systemctl start rpcbind
systemctl enable rpcbind
systemctl start nfs
systemctl enable nfs
#创建共享目录配置
mkdir -p /home/arcgisk8s
chmod 755 /home/arcgisk8s
# vi /etc/exports 在该文件里添加如下内容:
/home/arcgisk8s *(rw,sync,no_root_squash)

exportfs -r
#看共享目录是否能正常exportfs
showmount -e nfs服务器IP
eg: showmount -e 10.10.10.132
image.png

2.2 在k8s各个节点挂载共享目录 (master\registry\worker1\worker2)

#仅安装nfs-utils yum install -y nfs-utils
systemctl start nfs
systemctl enable nfs
#创建挂载目录
mkdir -p /mnt/arcgisk8s
chmod 755 /mnt/arcgisk8s

vi /etc/fstab
#在该文件中挂载,使系统每次启动时都能自动挂载
nfs服务端 IP:xxxxx
10.10.10.132:/home/arcgisk8s /mnt/arcgisk8s nfs defaults 0 0
image.png
#使文件/etc/fstab生效
mount -a
#查看挂载情况
df -h
image.png

3、部署 Rancher (master节点)

3.1 创建rancher的挂载目录

mkdir -p /rancher_home/rancher
mkdir -p /rancher_home/auditlog

3.2 启动rancher

docker run -d  --privileged=true --restart=unless-stopped -p 9080:80 -p 9443:443 -v /rancher_home/rancher:/var/lib/rancher -v /rancher_home/auditlog:/var/log/auditlog --name rancher rancher/rancher:stable

rancher启动完毕后,打开 https://安装机器IP:9443 即可跳转到rancher页面。

3.3 获取登录密钥

#获取 rancher 容器的 ID,然后替换下面的container-id
docker ps
# 找到密码
docker logs ${container-id} 2>&1 | grep “Bootstrap Password:”
# 例如
docker logs 0178bc806990 2>&1 | grep “Bootstrap Password:”
# 获得 code
wp2ffk6s5w96kf5wb5qpt28vzggqxmm5l6nvj7nv86jkmdvpxl7qfz

3.4 创建账户 默认账户名:admin 密码自己设置

获取密码后登录rancher,并设置rancher密码。Rancher的密码要求是长度至少12
user:admin
password:adminadmin123
image.png

3.5设置中文

image.png

4、创建k8s集群

4.1创建

#点击框选处的创建
image.png
#选择自定义
image.png
# 定义Cluster名字
image.png
#选择k8s的版本v1.21.x;由于ArcGIS Enterprise on K8s本身内置了一个nginx Ingress服务,因此,这里禁用;其他均采用默认参数
image.png

4.2节点选项 etcd、ControlPlane、worker 全部勾选后,复制下方的命令输入到 master 终端并运行。

image.png
:::info
注意:先执行master节点(主节点),等待master节点机器成功active后,再执行节点2(worker1)和节点3(worker2)执行master节点期间会报各类error,耐心等待
:::
image.png
image.png
image.png
:::info
当状态变为Active时,才代表master运行完毕, 然后仅勾选 Worker,然后复制命令到 worker1 机器上运行,成功激活后再复制命令带到 worker2 运行。 **
:::
** #所有节点激活成功并启动:

image.png

4.3 注意:如果创建k8s集群失败或者要重新创建集群,使用以下 .sh 命令做完全清理

#清理 rancher(k8s)集群机器
# 在集群安装操作错误,出现安装出现问题,最好做一下清理后重建方能正常,下面是一段清理脚本:
# !!!下面这两个命令会删除机器上所有容器(请慎重!你可以手工挨个删除或修改一下命令过滤条件)
docker rm -f $(sudo docker ps -aq);
docker volume rm $(sudo docker volume ls -q);

rm -rf /etc/cni \
 /etc/kubernetes \
 /opt/cni \
 /opt/rke \
 /run/secrets/kubernetes.io \
 /run/calico \
 /run/flannel \
 /var/lib/calico \
 /var/lib/etcd \
 /var/lib/cni \
 /var/lib/kubelet \
 /var/lib/rancher/rke/log \
 /var/log/containers \
 /var/log/pods \
 /var/run/calico

for mount in $(mount | grep tmpfs | grep '/var/lib/kubelet' | awk '{ print $3 }') /var/lib/kubelet /var/lib/rancher; do umount $mount; done

rm -f /var/lib/containerd/io.containerd.metadata.v1.bolt/meta.db
sudo systemctl restart containerd
sudo systemctl restart docker

5、配置kubeconfig准备部署环境 (Master节点)

5.1安装和部署 kubectl

#参考 https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux/
#用命令下载最新版本:
curl -LO “https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl”
#或者下载指定版本
curl -LO https://dl.k8s.io/release/v1.20.12/bin/linux/amd64/kubectl
#安装 kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
#查看安装版本
kubectl version --client

5.2 获取kubeconfig

#登录rancher,并点击进入之前创建的cluster集群即ags1091,点击顶部的 Copy Kubeconfig to Clipboard按钮获取kubeconfig内容
image.png

5.3在 master 节点上创建 kubeconfig 文件

#创建文件
mkdir -p ~/.kube
vi ~/.kube/config
在编辑中输入上述复制获得的信息,以运行部署脚本和其他测试
#验证kubeconfig配置 运行获取所有节点信息,即说明配置成功
kubectl get nodes
image.png

6、登录私库

6.1 本地 Registry 搭建 (在Registry节点上操作)

6.1.1 制作证书

6.1.1.1 安装 openssl

yum install openssl openssl-devel -y

6.1.1.2 openssl 配置文件修改

mkdir -p /mnt/registry/certs
cd /mnt/registry/certs
cp /etc/pki/tls/openssl.cnf /mnt/registry/certs
结果确认:
image.png
#修改 操作目录的 openssl.cnf
vi /mnt/registry/certs/openssl.cnf
#修改如下 (去掉 144 行的# 添加 145 146 行 146 可以写多个域名 )
144 req_extensions = v3_req # The extensions to add to a certificate request
145 [ alt_names ] 146
DNS.1 = registry.geoscene.local
结果确认:
image.png

6.1.1.3 生成默认 ca

openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -subj “/CN=example.ca.com” -days 5000 -out ca.crt

6.1.1.4 生成证书请求
openssl req -new -sha256 -key ca.key -out domain.csr<br />执行成功后提示要输入您的相关信息。填写说明:<br />1.Country Name:<br />填您所在国家的ISO标准代号,如中国为CN,美国为US<br />2.State or Province Name:<br />填您单位所在地省/自治区/直辖市,如四川省或 SC<br />3.Locality Name:<br />填您单位所在地的市/县/区,如成都市或CD<br />4.Organization Name:<br />填您单位/机构/企业合法的名称,如ESRI或者易智瑞<br />5.Organizational Unit Name:<br />填部门名称,如技术支持部或Technical support<br />6.Common Name:<br />填域名,如:registry.geoscene.local。在多个域名时,填主域名<br />7.Email Address:<br />填您的邮件地址,不必输入,按回车跳过<br />8.'extra'attributes<br />从信息开始的都不需要填写,按回车跳过直至命令执行完毕

6.1.1.5 生成证书
openssl x509 -req -days 365000 -in /mnt/registry/certs/domain.csr -CA ca.crt - CAkey ca.key -CAcreateserial -extfile <(printf "subjectAltName=DNS:registry.geoscene.local") -out domain.crt  

6.1.1.6 证书位置在

/mnt/registry/certs

6.1.2 拉取 registry

#拉取 registry:2.7.0
docker pull registry:2.7.0
image.png
#使用 docker images 查看是否拉取成功。
image.png

6.1.3 确认服务器开放 443 端口 主要是安全组的设置(公司服务器创建可以不用管这步,华为云需要检查)

#ECS 服务器进入安全组配置
image.png

6.1.4 创建鉴权目录和生成鉴权密码文件

mkdir -pv /mnt/registry/auth
docker run --entrypoint htpasswd registry:2.7.0 -Bbn geoscene geoscene1234 > /mnt/registry/auth/htpasswd
参数解析:
-B:强制密码加密
-b:使用命令行中的密码而不是提示输入密码
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上
geoscene 是账号
geoscene1234 是密码

6.1.5 设置密码登录

设置需要需要密码才能登录使用 registry 的方式:

docker run -d \
 --restart=always \
 --name registry \
 -v /mnt/registry/certs:/certs \
 -v /mnt/registry:/var/lib/registry \
 -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
 -e REGISTRY_HTTP_TLS_KEY=/certs/ca.key \
 -v /mnt/registry/auth:/auth \
 -e "REGISTRY_AUTH=htpasswd" \
 -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
 -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
 -p 443:443 \
 -v /etc/localtime:/etc/localtime:ro \
 registry:2.7.0

6.1.6 复制证书到指定位置

执行以下命令,复制证书到指定目录,并使 Docker 信任该证书。
mkdir -p /etc/docker/certs.d/registry.geoscene.local
cp /mnt/registry/certs/domain.crt /etc/docker/certs.d/ registry.geoscene.local/ca.crt

6.2 上传镜像

6.2.1 上传镜像文件至服务器

**此步骤的前提是本地有ArcGIS Kubernetes 的镜像文件 **
image.png

6.2.2 登录 docker 私库

docker login https://registry.geoscene.local

6.2.3 将压缩包加载到本地

docker load -i /root/jsapi.tar

6.2.4 查看本地镜像文件

docker images

6.2.5 将本地镜像 push 到本地镜像库

docker push registry.geoscene.local/esridocker/jsapi:10.9.1.1599

###附件

1 将拷贝附带的Docker Images文件夹中的 alinone.tar 拷贝到registry机器上

image.png
别拷贝到/root目录下,否者后面导入镜像时会导致内存空间不够,将该文件拷贝到/home目录下

2 导入镜像

docker load -i /home/allinone.tar (这个文件20多个g,时间很长,耐心等待)

3 将本地镜像 push 到本地镜像库

docker push registry.geoscene.local/esridocker/enterprise-admin:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-elasticsearch:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-ignite:10.9.1.1599
docker push registry.geoscene.local/esridocker/relational-datastore:10.9.1.1599
docker push registry.geoscene.local/esridocker/postgres-upgrade-tools:10.9.1.1599
docker push registry.geoscene.local/esridocker/catalog-server:10.9.1.1599
docker push registry.geoscene.local/esridocker/gp-proxy-server:10.9.1.1599
docker push registry.geoscene.local/esridocker/geometry-server:10.9.1.1599
docker push registry.geoscene.local/esridocker/config-factory-server:10.9.1.1599
docker push registry.geoscene.local/esridocker/image-server:10.9.1.1599
docker push registry.geoscene.local/esridocker/gp-server:10.9.1.1599
docker push registry.geoscene.local/esridocker/map-server:10.9.1.1599
docker push registry.geoscene.local/esridocker/geocode-server:10.9.1.1599
docker push registry.geoscene.local/esridocker/tile-server:10.9.1.1599
docker push registry.geoscene.local/esridocker/sds-feature-server:10.9.1.1599
docker push registry.geoscene.local/esridocker/enterprise-admin-tools:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-disaster-recovery:10.9.1.1599
docker push registry.geoscene.local/esridocker/portal-content-template:10.9.1.1599
docker push registry.geoscene.local/esridocker/help:10.9.1.1599
docker push registry.geoscene.local/esridocker/manager:10.9.1.1599
docker push registry.geoscene.local/esridocker/sharing:10.9.1.1599
docker push registry.geoscene.local/esridocker/apps:10.9.1.1599
docker push registry.geoscene.local/esridocker/web-style:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-minio:10.9.1.1599
docker push registry.geoscene.local/esridocker/home:10.9.1.1599
docker push registry.geoscene.local/esridocker/jsapi:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-nginx-web:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-filebeat:10.9.1.1599
docker push registry.geoscene.local/esridocker/enterprise-rabbitmq:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-grafana:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-ingress-controller:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-prometheus:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-busybox:10.9.1.1599
docker push registry.geoscene.local/esridocker/arcgis-kibana:10.9.1.1599
registry.geoscene.local/esridocker/enterprise-admin            10.9.1.1599   
registry.geoscene.local/esridocker/sharing                     10.9.1.1599   
registry.geoscene.local/esridocker/config-factory-server       10.9.1.1599   
registry.geoscene.local/esridocker/catalog-server              10.9.1.1599   
registry.geoscene.local/esridocker/geometry-server             10.9.1.1599   
registry.geoscene.local/esridocker/gp-server                   10.9.1.1599   
registry.geoscene.local/esridocker/image-server                10.9.1.1599   
registry.geoscene.local/esridocker/geocode-server              10.9.1.1599   
registry.geoscene.local/esridocker/gp-proxy-server             10.9.1.1599   
registry.geoscene.local/esridocker/map-server                  10.9.1.1599   
registry.geoscene.local/esridocker/apps                        10.9.1.1599   
registry.geoscene.local/esridocker/sds-feature-server          10.9.1.1599   
registry.geoscene.local/esridocker/tile-server                 10.9.1.1599   
registry.geoscene.local/esridocker/relational-datastore        10.9.1.1599   
registry.geoscene.local/esridocker/postgres-upgrade-tools      10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-ignite               10.9.1.1599   
registry.geoscene.local/esridocker/portal-content-template     10.9.1.1599   
registry.geoscene.local/esridocker/enterprise-admin-tools      10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-disaster-recovery    10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-postgresql           10.9.1.1599   
registry.geoscene.local/esridocker/help                        10.9.1.1599   
registry.geoscene.local/esridocker/home                        10.9.1.1599   
registry.geoscene.local/esridocker/web-style                   10.9.1.1599   
registry.geoscene.local/esridocker/manager                     10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-elasticsearch        10.9.1.1599   
registry.geoscene.local/esridocker/jsapi                       10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-minio                10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-nginx-web            10.9.1.1599   
registry.geoscene.local/esridocker/enterprise-rabbitmq         10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-grafana              10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-ingress-controller   10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-filebeat             10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-prometheus           10.9.1.1599   
registry.geoscene.local/esridocker/arcgis-busybox              10.9.1.1599

4 查看私有镜像库的镜像文件

浏览器访问:https://registry.geoscene.local/v2/_catalog
默认端口是 5000,这里是 443
registry.geoscene.local 是私有镜像仓库的域名

5 查看镜像的标签

https://registry.geoscene.local/v2/esridocker/jsapi/tags/list
esridocker/jsapi 是某个镜像的名字

6 查看磁盘空间

df -h

7 删除镜像仓库中的镜像

https://blog.csdn.net/u010383467/article/details/123571707

8 导出本地所有镜像

docker save $(docker images --format ‘{{.Repository}}:{{.Tag}}’) -o allinone.tar
ArcGIS 10.9.1 k8s 所需的镜像文件打包见云盘地址:
链接:https://pan.baidu.com/s/11rVmBkHcXZGSRewSO1J12g
提取码:zuof

9 删除本地所有镜像

docker rmi $(docker images -q)

6.3 登录私库

docker login https://registry.geoscene.local
#如果是非 https 私库
比如这个 docker login repo.geoscene.cn:5000
所有在所有节点的 daemon.json 中设定不验证私库证书
vi /etc/docker/daemon.json 添加:

{
"insecure-registries": ["repo.geoscene.cn:5000"], 
"registry-mirrors": ["XXX"]
}

#添加后重启
docker systemctl daemon-reload
systemctl restart docker

6.3.1 master\nfs\worker1\worker2 登录私库

#需要先在各节点放置证书
1、在/etc/docker/certs.d下建立文件夹,文件夹名字是私有仓库的域名,即registry.geoscene.local
2、将证书拷贝至registry.geoscene.local文件夹下
eg:
创建文件夹
mkdir -p /etc/docker/certs.d/registry.geoscene.local
从私库远程将密钥cp拷贝到本机
scp root@registry.geoscene.local:/mnt/registry/certs/domain.crt /etc/docker/certs.d/registry.geoscene.local/ca.crt

7、运行部署脚本

7.1 创建命名空间

kubectl create namespace arcgis

7.2 上传安装包,解压

#将 ArcGIS_Enterprise_Kubernetes_1091_180123.tar.gz 上传至master节点(也可任一节点)。本次 压缩包都放置于 master 节点。
#解压文件 tar -zxvf …
tar -zxvf ArcGIS_Enterprise_Kubernetes_1091_180123.tar.gz

7.3 准备加密文件

#使用安装包中提供的工具来创建加密文件:tools 下的 password-encrypt.sh。
#运行该工具需要两个参数,一个是 keyfile 的全路径;一个是密码。
#创建 keyfile 文件和文件夹
#创建文件夹 地址随意
mkdir -p /root/EncryptionKeyfile
#导航至新建的地址,创建 keyfile 文件
#内容随意,但不能为空,否则下面执行工具会失败。
cd /root/EncryptionKeyfile

cat<<EOF>keyfile.txt
123 
EOF

#执行工具
#进入目录
cd /root/arcgis-enterprise/1091/setup/tools/password-encrypt
#运行,密码设置为arcgis@123
sh password-encrypt.sh -f /root/EncryptionKeyfile/keyfile.txt -p “arcgis@123”
#执行会返回密码的加密字符串。拷贝下来,并替换掉keyfile.txt的随意文本。
#返回token
U2FsdGVkX1/+msKUK481LibRhj6Hoqogfp8x8m0OGqE=
#用返回的token替换123
cd /root/EncryptionKeyfile
vi keyfile.txt
#确保每个节点都已成功登录连接到镜像仓库。 master\nfs\registry\worker1\worker2

7.4 部署

执行部署脚本
#导航至 setup目录
cd /home/arcgis-enterprise/1091/setup
#运行部署代码
./deploy.sh
#填写相应参数:
- Do you want to provision a cloud load balancer (y/[n]) ? : n
- For Red Hat OpenShift, will you use an OpenShift Route for incoming traffic (y/[n]) ? : n
- Namespace : arcgis
- Keyfile file path : /root/EncryptionKeyfile/keyfile.txt
- Registry host (default=docker.io) : registry.geoscene.local
- Image path (default=esridocker) : # 默认
- Registry username : geoscene
- Registry password : geoscene1234
- Fully Qualified Domain Name : m.ags.cd #部署机器域名,此处我安装在master节点上,即为master域名 : m.ags.cd
- Context Path (default=arcgis) : # 默认
- Port for the ingress controller’s NodePort Service : 30003
Enter a number 1 through 4: 2 # 采用的是事先创建好的自签名证书,也可选4
- Full path to the .PFX file : /root/EncryptionKeyfile/ags.pfx
- .PFX file password : # xy942698

PS: openssl 创建 pfx 证书
生成私钥
openssl genrsa -out ags.key 1024
生成证书请求文件,需要填写信息
openssl req -new -x509 -key ags.key -out ags.csr -days 3650 -subj /CN=example.ags.com
自签名
openssl pkcs12 -export -out ags.pfx -inkey ags.key -in ags.csr

image.png
#部署完毕后
image.png

7.5 撤销部署

如果最后在网页配置 ArcGIS 组织时失败,取消部署后重新部署
#导航至 setup目录
cd /root/arcgis-enterprise/1091/setup
./undeploy.sh -n arcgis
#重新部署后,
#需要重新修改 arcgis-ingress-nginx 的 Service 配置文件。

8、创建组织

8.1 配置externalIP

#配置externalP确保外部可访问 arcgis 的组织创建页面
1)在cluster界面,点击Service Discovery -> Services,找到arcgis-ingress-nginx这一服务
2)点击Edit YAML
image.png
3)添加 externalIPs 项,设置为 Master 节点的 ip
确保外部可以访问到 arcgis 组织创建界面
externalIPs:
- 10.10.10.131
image.png

8.2 配置coredns

1)在cluster界面,确保namespace为All namespaces,点击More Resources->Core->ConfigMaps下的coredns,点击Edit YAML
或者在存储-ConfigMaps 下也能找到
image.png
2) 添加域名和ip的映射

      hosts {
         <master节点IP> <Master节点全限定域名>
         fallthrough
       }

image.png

8.3 创建 storage class

#在本地创建一个叫 rancher-nfs-local.yaml 的文件, 修改 nfs 服务器的 IP 和共享路径后 ,然后将下面文本内容复制到新建的文件中

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: nfs-provisioner
  namespace: kube-system
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: nfs-provisioner
  template:
    metadata:
      labels:
        app: nfs-provisioner
    spec:
      serviceAccount: admin-user
      containers:
        - name: nfs-provisioner
          image: registry.cn-beijing.aliyuncs.com/mydlq/nfs-subdir-external-provisioner:v4.0.0
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: nfs.k8sdata                        # 和后文中的provisioner保持一致
            - name: NFS_SERVER
              value: 10.10.10.132                # nfs服务器的ip
            - name: NFS_PATH
              value: /home/arcgisk8s                            # nfs共享路径
      volumes:
        - name: nfs-client-root
          nfs:
            server: 10.10.10.132                # nfs服务器的ip
            path: /home/arcgisk8s                              # nfs共享路径

---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: arcgis-storage-default                # storage class的名字
  labels:
    addonmanager.kubernetes.io/mode: Reconcile
provisioner: nfs.k8sdata
reclaimPolicy: Retain

https://blog.csdn.net/hawk2014bj/article/details/118035709
#UI 顶部点击 Import yaml 的图标,导入刚刚创建的文件
image.png
# 验证pvc是否可以创建成功
#点击PersistentVolumeClaims->Create,验证pvc是否可以创建成功。
image.png
#状态为 Bound 表示创建成功
image.png

8.4 正式创建组织

#打开 https://master域名/arcgis/manager开始配置
#打开 https://masterIP/arcgis/manager开始配置
image.png
image.png
:::info
K8S 10.9.1 的许可和普通版本一致,但是11的就不通用了
:::
image.png
#配置存储:使用动态存储类型,存储类名称,使用前面步骤创建的存储类名称 arcgis-storage-default。其他默认。
image.png
#所需时间较长,请耐心等待,如果长时间 Configuration store 未启动,代表部署失败,检查在7.4步骤部署过程是否全部为Successful
联想截图_20230113171814.png

9 访问ArcGIS Enterprise on kubernetes

https://安装机器域名或IP/arcgis/manager 如果POD有不正常的,说明还未完全启动,等待后即可
联想截图_20230116092408.png
https://m.ags.cd/arcgis/home/ 访问ArcGIS Enterprise主页 查看服务,跟普通版一致
ArcGISPro 连接 https://m.ags.cd/arcgis

附件

需要pro通过UNC路径的方式访问数据 则需要弄一个samba ,才能使Windows访问到Linux上的文件 https://blog.csdn.net/qq_38410730/article/details/80500920

enterprise注册文件夹

登录ArcGIS Enterprise Admin页面,点击DataStores -> Register Item
{
 "clientPath":"\\\\10.10.10.132\\home\\gxfile\\xx",         #共享路径
 "type":"folder",
 "info":{
  "fileServerHost":"10.10.10.132",                          #共享IP
  "fileServerType":"nfs",
  "fileServerPath":"/home/gxfile/xx",
 }
}

注册完毕后,要确保publishingtools的pod进去后,能访问到/arcgis/nfs/ip/文件夹
image.png
属于结合资料研究得出,内有错误之处,请大家多多指教,欢迎关注公众号 懒得取名的GISer ,共同探讨

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值