宿主机
开启ipv6
部署kubernetes
calico 网络方案
(步骤略)
部署 baremetal-operator-master
- 源码安装 go14环境
(略) - 安装新版kubectl (新版本已经默认集成)
1 | #curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.19.0/bin/linux/amd64/kubectl |
- 安装baremetal operator (我部署的时候TLS版本老是有问题)
1 | #export GOPROXY=https://goproxy.io |
惊奇发现,部署好简单? 啥也不需要配置 ? 往下走。。。。
发现问题
由上图我们能够发现metal3 下面的pod卡在了init状态
1 | #kubectl -n metal3 get pods metal3-ironic-64fd7499cc-nwwhb --template '{{.status.initContainerStatuses}}' |
手动执行启动脚本,发现卡在了 curl -g –verbose –fail -O http://172.22.0.1/images/ironic-python-agent.tar.headers
1 | #/bin/bash -xe /usr/local/bin/get-resource.sh |
定位到了问题,原因是configmap ironic-bmo-configmap-86hh74cbcc 中的 ironic agent cache url 没有配置, ironic 需要从 cache_url 将镜像下载下来,同时默认 ironic-ipa-downloader 会从国外下载ipa,450多M,很慢, 等等就好了
解决调试
1 | #kubectl -n metal3 get cm ironic-bmo-configmap-86hh74cbcc -o yaml |
思考:
裸机下载引导内核的地址是多少?
裸机该如何分配IP地址 ?
IRONIC 的endpoint 地址多少?
裸机上有多个网卡该从哪个网卡启动?
CACHEURL: http://172.22.0.1/images
DEPLOY_KERNEL_URL: http://172.22.0.2:6180/images/ironic-python-agent.kernel
DEPLOY_RAMDISK_URL: http://172.22.0.2:6180/images/ironic-python-agent.initramfs
DHCP_RANGE: 172.22.0.10,172.22.0.100
HTTP_PORT: “6180”
IRONIC_ENDPOINT: http://172.22.0.2:6385/v1/
IRONIC_FAST_TRACK: “true”
IRONIC_INSPECTOR_ENDPOINT: http://172.22.0.2:5050/v1/
PROVISIONING_INTERFACE: eth2
结合openstack使用场景,以及公司机房网络的实际环境,确定如下
我在宿主机上起了nginx并导入IPA的引导系统,
1 | #mkdir /data/nginx/images -p |
K8S上开启nginx
DNSMASQ分配
K8S上的ironic地址
裸机使用 eth4 网卡部署
1
2#kubectl -n baremetal-operator-system edit cm baremetal-operator-ironic
#kubectl -n metal3 edit cm ironic-bmo-configmap-86hh74cbcc
CACHEURL: http://10.145.69.37:9090/images
DEPLOY_KERNEL_URL: http://10.145.69.37:9090/images/ironic-python-agent.kernel
DEPLOY_RAMDISK_URL: http://10.145.69.37:9090/images/ironic-python-agent.initramfs
DHCP_RANGE: 10.145.69.3,10.145.69.4
HTTP_PORT: "6180"
IPA_BASEURI: http://10.145.69.37:9090/images
IRONIC_ENDPOINT: http://10.145.69.37:6385/v1/
IRONIC_FAST_TRACK: "true"
IRONIC_INSECURE: "true"
IRONIC_INSPECTOR_ENDPOINT: http://10.145.69.37:5050/v1/
PROVISIONING_INTERFACE: eth4
1 | #go run cmd/make-bm-worker/main.go -address 10.142.65.41 -password *****_***stack -user ***** worker-615|kubectl apply -f |
排错:
1 | 1. ipa 报 cryptography 与openssl不兼容 |
1 | #baremetal --os-endpoint http://10.145.69.37:6385/v1/ node list |