二、环境准备
1、Boot、Master、Proxy节点(三个节点放在一起)
VMware workstation 12 虚拟机,配置如下:
CPU 2*3 =6核 E5606 2.13GHz
内存 14G 硬盘300G
IP:192.168.0.107
机器名: ubuntu-icp-bootmasternode
2、Management节点
VMware workstation 12 虚拟机,配置如下:
CPU 1*4 =4核 E31225 3.10GHz
内存 14G 硬盘250G
IP:192.168.0.106
机器名:ubuntu-icp-managementnode
3、Worker节点
Hyper-v 虚拟机,配置如下:
CPU 1*2 =2核 G630 2.7GHz
内存 6G 硬盘200G
IP:192.168.0.105
机器名:ubuntu-icp-workernode
三、集群配置
https://www.ibm.com/support/knowledgecenter/zh/SSBS6K_3.1.0/installing/prep_cluster.html#prep_cluster
1、在集群的各个节点上配置 /etc/hosts 文件。
127.0.0.1 localhost
127.0.1.1 ubuntu-ICP-ManagementNode
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
修改为
127.0.0.1 localhost
192.168.0.107 ubuntu-icp-bootmasternode
192.168.0.106 ubuntu-icp-managementnode
192.168.0.105 ubuntu-icp-workernode
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
重要事项:请确保按本地主机的 IP 地址列示主机名。 无法按回送地址 127.0.0.1 列示主机名。
/etc/hosts 文件中的主机名不得包含大写字母。
如果您的集群包含单个节点,那么您必须列出其 IP 地址和主机名。
注释掉文件中以 127.0.1.1 和 ::1 localhost 开头的行。
/etc/resolv.conf 文件中127.0.1.1 改成 8.8.8.8
2、修改网络管理配置
ubuntu系统一般安装了NetworkManager,重启后系统重置resolv.conf,所以需如下:
sudo gedit /etc/NetworkManager/NetworkManager.conf
将dns=dnsmasq注释掉. 禁止使用dnsmasq插件.
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
[ifupdown]
managed=false
然后重启NetworkManager
3、在集群中的每个节点上,确认安装了 Python 的受支持版本。 支持 Python 2(V2.6 或 V2.7)和 Python 3(V3.5 或更高版本)。
python --version
4、同步集群的每个节点中的时钟。 要同步您的时钟,您可以使用网络时间协议 (NTP)。 有关设置 NTP 的更多信息,请参阅操作系统的用户文档。
把每台机器时间设置为上海,自动从网上获取
5、 安装SSH
确保在每个节点上安装了 SSH 客户端。
sudo apt-get install openssh-server
ssh restart
在集群中每个节点上安装 socat。 socat 是用于两个位置之间双向数据流的网络实用工具。 对于 Helm,socat 用于为 Helm 客户机和 Tiller 设置端口转发。
sudo apt-get install socat
6、修改每个节点SSH文件/etc/ssh/sshd_config
参考:https://blog.csdn.net/zilaike/article/details/78922524
参考:https://www.cnblogs.com/kuillldan/p/8667082.html
我改成:
LoginGraceTime 120
#PermitRootLogin prohibit-password
#StrictModes yes
PermitRootLogin without-password
PermitRootLogin yes
service sshd restart
四、安装 IBM® Cloud Private-CE
https://www.ibm.com/support/knowledgecenter/zh/SSBS6K_3.1.0/installing/install_containers_CE.html
(一定保证节点能上网,我是在线安装)
1、步骤 1:仅为引导节点安装 Docker
输入安装命令 sudo apt-get update
sudo apt-get install docker.io
2、步骤 2:设置安装环境
以具有 root 用户权限的用户身份登录引导节点。
1)要从 Docker Hub 拉取 IBM Cloud Private-CE 安装程序映像,请运行以下命令:
sudo docker pull ibmcom/icp-inception:3.1.0
创建用于存储 IBM Cloud Private 配置文件的安装目录,并切换至该目录。 例如,要将配置文件存储在 /opt/ibm-cloud-private-ce-3.1.0 中,请运行以下命令:
mkdir /opt/ibm-cloud-private-ce-3.1.0;
cd /opt/ibm-cloud-private-ce-3.1.0
2)抽取配置文件。
sudo docker run -e LICENSE=accept -v"$(pwd)":/data ibmcom/icp-inception:3.1.0 cp -r cluster /data
在安装目录内创建 cluster 目录。 例如,如果安装目录是 /opt,那么将创建 /opt/cluster 文件夹。 有关集群目录结构概述,请参阅集群目录结构。
(可选)您可以通过运行以下命令来查看 IBM Cloud Private 的许可证文件:
docker run -e LICENSE=view -e LANG=$LANG ibmcom/icp-inception:3.1.0
其中 $LANG 是受支持的语言格式。 例如,要查看简体中文版的许可证,可以运行以下命令:
docker run -e LICENSE=view -e LANG=zh_CN ibmcom/icp-inception:3.1.0
3)创建从集群中的引导节点到所有其他节点的安全连接。 完成下列过程之一:
在集群中设置 SSH。 请参阅在集群节点中共享 SSH 密钥。
使用具有 root 访问权的帐户登录引导节点。
生成 SSH 密钥。
ssh-keygen -b 4096 -f ~/.ssh/id_rsa -N “”
将密钥添加到授权密钥列表。
cat ~/.ssh/id_rsa.pub | sudo tee -a ~/.ssh/authorized_keys
将密钥添加到每个集群节点。 集群节点为主节点、工作程序节点、代理节点、管理节点和漏洞顾问程序 (VA) 节点。 针对每个集群节点完成以下步骤。
从引导节点,将 SSH 公用密钥添加到集群节点。
#user 最好别用root,因为ssh服务默认不让root账号登陆,除非修改配置文件,可参考相关知识2
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
cp ~/.ssh/id_rsa ssh_key
其中, 是节点的用户名,
在集群中设置密码认证。 请参阅配置集群节点的密码认证。
4)节点配置
sudo cat /opt/ibm-cloud-private-ce-3.1.0/cluster/hosts
打开 /opt/ibm-cloud-private-ce-3.1.0/cluster/hosts文件,改成如下:
[master]
192.168.0.107 ansible_user=“root”
[worker]
192.168.0.105 ansible_user=“root”
[proxy]
192.168.0.107 ansible_user=“root”
[management]
192.168.0.106 ansible_user=“root”
#[va]
#5.5.5.5
3、第 3 步:定制集群
请确保 docker.io/ibmcom/* 注册表位于可从中部署应用程序的存储库允许列表中。 将以下代码添加到 /opt/ibm-cloud-private-ce-3.1.0/cluster/config.yaml 文件:
image-security-enforcement:
clusterImagePolicy:
- name: “docker.io/ibmcom/*”
policy:
4、第 4 步:为集群节点设置 Docker
集群节点是主节点、工作程序节点、代理节点和管理节点。 请参阅体系结构。
您需要在集群节点上安装 IBM Cloud Private 所支持的 Docker 版本。 请参阅支持的 Docker 版本。
如果您没有在集群节点上安装 Docker 的受支持的版本,IBM Cloud Private 在安装期间会自动在集群节点上安装 Docker。
要让集群节点做好自动安装 Docker 的准备,请参阅配置集群节点以自动安装 Docker。
5、第 5 步:部署环境
切换到安装目录中的 cluster 文件夹。
cd ./cluster
部署您的环境。 根据您的选项,您可能需要添加更多参数到部署命令。
缺省情况下,用于部署环境的命令设置为每次部署 15 个节点。 如果您的集群包含 15 个以上的节点,那么部署可能需要更长时间才能完成。 如果您希望加快部署速度,那么可以将每次要部署的节点数指定为更大的值。 在命令中使用自变量 -f 。
要部署您的环境,请运行以下命令:
sudo docker run --net=host -t -e LICENSE=accept -v “$(pwd)”:/installer/cluster ibmcom/icp-inception:3.1.0 install
如果中间配置出问题,重新安装之前要卸载
sudo docker run --net=host -t -e LICENSE=accept -v “$(pwd)”:/installer/cluster ibmcom/icp-inception:3.1.0 uninstall
五、相关知识
1、修改服务器名称
https://blog.csdn.net/dowemo/article/details/78790329
配置 /etc/hosts 文件。
127.0.0.1 localhost
127.0.1.1 ubuntu-ICP-ManagementNode
修改/etc/hostname
2、修改root账户可以SSH远程登录
https://www.cnblogs.com/kuillldan/p/8667082.html
使用gedit修改配置文件”/etc/ssh/sshd_config” 获取远程ROOT权限
我改成:
LoginGraceTime 120
#PermitRootLogin prohibit-password
#StrictModes yes
PermitRootLogin without-password
PermitRootLogin yes
3、切换用户
切换用户的命令为:su username