参考官方文档:www.cloudpods.org/zh/docs/qui…
第一步 创建华为云虚拟机
- 镜像:CentOS 7.9 64位
- 大小:8核16GB
- 系统盘:通用型SSD 40GiB
- 数据盘:通用型SSD 500GiB
- 公网带宽:10Mbps
- 安全组:入方向放通22、443、80
详细配置如下图所示:
第二步 格式化数据盘,并且挂载到/opt
[root@cloudpods ~]# fdisk -l
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000f24de
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 83886079 41942016 83 Linux
Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@cloudpods ~]# mkfs.ext4 /dev/vdb
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214400 blocks
1310720 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2174746624
800 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@cloudpods ~]# blkid
/dev/vda1: UUID="7c5d72cf-4d6b-4cd2-ac0d-fcc9270be4c4" TYPE="ext4"
/dev/vdb: UUID="666409d2-c110-43ed-9ea3-213857816344" TYPE="ext4"
[root@cloudpods ~]# vim /etc/fstab
[root@cloudpods ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Jul 12 13:43:30 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=7c5d72cf-4d6b-4cd2-ac0d-fcc9270be4c4 / ext4 defaults 1 1
UUID=666409d2-c110-43ed-9ea3-213857816344 /opt ext4 defaults 0 0
[root@cloudpods ~]# mount -a
[root@cloudpods ~]#
[root@cloudpods ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 8.6M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/vda1 40G 2.1G 36G 6% /
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/vdb 99G 61M 94G 1% /opt
纯命令行
fdisk -l
mkfs.ext4 /dev/vdb
blkid
vim /etc/fstab
cat /etc/fstab
mount -a
df -h
第三步 配置 SSH 免密登录
[root@cloudpods ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:uZhEGY7ds2EoHrgawOX22wz/ZXX65/6F248GtbmcsaY root@cloudpods
The key's randomart image is:
+---[RSA 2048]----+
| . . |
|. o. + = |
|...o+ * = |
|. .o.+ . = . |
|. . .o. S o + |
| o .*o . o *. |
|. .o+. o +.=.|
| . o O+o|
| . E+o+X|
+----[SHA256]-----+
[root@cloudpods ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@cloudpods ~]# chmod 600 ~/.ssh/authorized_keys
[root@cloudpods ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.119 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::f816:3eff:fe53:ab22 prefixlen 64 scopeid 0x20<link>
ether fa:16:3e:53:ab:22 txqueuelen 1000 (Ethernet)
RX packets 12469 bytes 16882813 (16.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1995 bytes 226906 (221.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@cloudpods ~]# ssh 'root@192.168.0.119' hostname
The authenticity of host '192.168.0.119 (192.168.0.119)' can't be established.
ECDSA key fingerprint is SHA256:nFjKfWzINUsxTa8OFepPiT3jMa6UrA7Ea6Xs9c4a0xU.
ECDSA key fingerprint is MD5:1e:ec:75:ae:32:3f:23:5f:80:97:87:e9:76:fd:f6:69.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.119' (ECDSA) to the list of known hosts.
cloudpods
纯命令行
ssh-keygen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ifconfig
ssh 'root@192.168.0.119' hostname
第四步 安装 ansible 和 git
安装 ansible 报错:UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 117: ordinal not in range(128) 解决办法请见文末安装过程中的问题
安装 ansible 如果比较慢,可以使用国内的 pip 源,配置方法见文末安装过程中的问题
yum install -y epel-release git python3-pip
python3 -m pip install --upgrade pip setuptools wheel
python3 -m pip install --upgrade ansible
第五步 下载 ocboot 工具
git clone -b release/3.10 https://github.com/yunionio/ocboot && cd ./ocboot
第六步 部署 Cloudpods
[root@cloudpods ocboot]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.119 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::f816:3eff:fe53:ab22 prefixlen 64 scopeid 0x20<link>
ether fa:16:3e:53:ab:22 txqueuelen 1000 (Ethernet)
RX packets 87777 bytes 121280048 (115.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15898 bytes 2012989 (1.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 41 bytes 8302 (8.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 41 bytes 8302 (8.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@cloudpods ocboot]# ./run.py 192.168.0.119
整个安装过程还挺慢的,大概得有个四五十分钟。部署完成之后,系统就自动重启了。
第七步 登录系统
服务器重启之后,需要等 10 分钟左右,就可以访问了。当然,也可以登录系统查看所有 pod 的状态,都 running 了就可以访问了。
可以登录服务器看一下所有服务的启动状态。
[root@cloudpods ~]# kubectl get pods -n onecloud
NAME READY STATUS RESTARTS AGE
default-ansibleserver-77696f8f46-mtp8p 1/1 Running 2 31m
default-apigateway-584fc899db-4s82h 1/1 Running 2 31m
default-apimap-bcccddf79-2tkch 1/1 Running 2 31m
default-climc-864b4d4c4b-krhw9 1/1 Running 1 8m24s
default-cloudevent-58f9fd65bd-vrqqh 1/1 Running 2 8m23s
default-cloudid-554db6ddcd-gq6nm 1/1 Running 0 8m22s
default-cloudmon-79cf5c88bd-6ghkq 1/1 Running 2 8m27s
default-cloudproxy-86d7757fc6-gcsmr 1/1 Running 2 8m21s
default-devtool-7d689fc7c7-9sxpr 1/1 Running 0 8m22s
default-esxi-agent-76fb88bf5f-p9lsf 1/1 Running 2 31m
default-etcd-5qnj5vq4b4 0/1 Pending 0 33m
default-etcd-twzzswk67t 1/1 Running 0 6m54s
default-etcd-x8vp8c4h76 0/1 Error 0 33m
default-glance-6ff84fc8bb-sxggv 1/1 Running 1 31m
default-host-deployer-fsghr 1/1 Running 6 31m
default-influxdb-7bf4bf9765-42n5m 1/1 Running 1 32m
default-keystone-7cdb6477c6-7qfg9 1/1 Running 1 33m
default-kubeserver-5bb67c7595-bqcmt 1/1 Running 2 31m
default-logger-7d5dff87c4-hzs4q 1/1 Running 0 8m21s
default-monitor-76d6764574-446nw 1/1 Running 2 31m
default-notify-7cccd996f8-9g88r 1/1 Running 1 8m22s
default-onecloud-service-operator-79c57b5f87-rhdmz 1/1 Running 2 8m23s
default-ovn-north-7cd9c46bf6-wbdk7 1/1 Running 1 31m
default-region-5888bdc999-gwzzh 1/1 Running 1 32m
default-region-dns-4qv4k 1/1 Running 1 31m
default-scheduledtask-7469c587c4-8dvzd 1/1 Running 1 8m24s
default-scheduler-6b4d67b857-b7s52 1/1 Running 2 31m
default-telegraf-8f4pv 1/1 Running 1 32m
default-vpcagent-59bbd8478c-q28rw 1/1 Running 2 31m
default-web-5888675765-2sss4 1/1 Running 11 31m
default-webconsole-85c8c559ff-9x7jw 1/1 Running 0 8m22s
default-yunionconf-65f5c7c949-pvz5p 1/1 Running 0 8m22s
onecloud-operator-78bc8bb9b4-cndkb 1/1 Running 1 7m5s
因为我创建虚拟机的时候,就选择了放通 22、80、443 端口,所以可以直接访问,这一点注意一下,否则可能因为安全规则导致访问不了。
按照文档提示获取登录了登录信息。
web 地址:https://124.71.225.57/ (公有云上只能通过公网 IP 访问)
用户名:admin
用户密码:admin@123
输入用户名和密码后,进入系统:
可以正常访问页面,不过有提示,我登录系统之后,根据系统的提示,把内网IP设置成了公网IP,提示消失。
第八步 配置阿里云账号以及对接现有资源
根据文档提示,获取到我自己的阿里云账号的 Access Key Id 和 Access Key Secret 然后填入表单,完成创建。
安装过程中的问题
安装 ansible 报错:UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 117: ordinal not in range(128)
配置 pip 国内源
[root@cloudpods ~]# mkdir ~/.pip
[root@cloudpods ~]# vim ~/.pip/pip.conf
[root@cloudpods ~]# cat ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
[root@cloudpods ~]# pip3 config list
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
install.trusted-host='https://pypi.tuna.tsinghua.edu.cn'