![Pei Tong](/assets/img/avatar_default.png)
Add install tool The tool aims to make the deploying of stackube as easy as possible. User could set up a whole Stackube cluster automatically by using it. It uses docker images provided by OpenStack Kolla Project to run a containerized OpenStack, and uses kubeadm to deploy kubenetes, then bootstrap the Stackube cluster. Change-Id: I6f18cf4d1a792bc505f955937f000dc0967341ce Implements: blueprint cluster-installation
113 lines
2.9 KiB
Bash
113 lines
2.9 KiB
Bash
#!/bin/bash
|
|
# Copyright (c) 2017 OpenStack Foundation.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
#
|
|
# Dependencies:
|
|
#
|
|
# - ``STREAMING_SERVER_ADDR``
|
|
# - ``FRAKTI_VERSION`` must be defined
|
|
#
|
|
|
|
programDir=`dirname $0`
|
|
programDir=$(readlink -f $programDir)
|
|
parentDir="$(dirname $programDir)"
|
|
programDirBaseName=$(basename $programDir)
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
set -x
|
|
|
|
|
|
## install libvirtd
|
|
yum install -y libvirt
|
|
|
|
|
|
## install hyperd
|
|
CENTOS7_QEMU_HYPER="http://hypercontainer-install.s3.amazonaws.com/qemu-hyper-2.4.1-3.el7.centos.x86_64.rpm"
|
|
CENTOS7_HYPERSTART="https://s3-us-west-1.amazonaws.com/hypercontainer-build/1.0-rc2/centos/hyperstart-0.8.1-1.el7.centos.x86_64.rpm"
|
|
CENTOS7_HYPER="https://s3-us-west-1.amazonaws.com/hypercontainer-build/1.0-rc2/centos/hyper-container-0.8.1-1.el7.centos.x86_64.rpm"
|
|
|
|
if rpm -qa | grep "hyper-container-0.8.1-1.el7.centos.x86_64" ; then
|
|
true
|
|
else
|
|
set -e
|
|
yum install -y ${CENTOS7_QEMU_HYPER} ${CENTOS7_HYPERSTART} ${CENTOS7_HYPER}
|
|
set +e
|
|
fi
|
|
set -e
|
|
|
|
cat > /etc/hyper/config << EOF
|
|
Kernel=/var/lib/hyper/kernel
|
|
Initrd=/var/lib/hyper/hyper-initrd.img
|
|
Hypervisor=qemu
|
|
StorageDriver=overlay
|
|
gRPCHost=127.0.0.1:22318
|
|
|
|
EOF
|
|
|
|
|
|
## install frakti
|
|
set +e
|
|
[ -f /usr/bin/frakti ] && rm -f /usr/bin/frakti
|
|
set -e
|
|
curl -sSL https://github.com/kubernetes/frakti/releases/download/${FRAKTI_VERSION}/frakti -o /usr/bin/frakti
|
|
chmod +x /usr/bin/frakti
|
|
|
|
dockerInfo=`docker info `
|
|
cgroup_driver=`echo "${dockerInfo}" | awk '/Cgroup Driver/{print $3}' `
|
|
[ "${cgroup_driver}" ]
|
|
|
|
echo "[Unit]
|
|
Description=Hypervisor-based container runtime for Kubernetes
|
|
Documentation=https://github.com/kubernetes/frakti
|
|
After=network.target
|
|
[Service]
|
|
ExecStart=/usr/bin/frakti --v=3 \
|
|
--log-dir=/var/log/frakti \
|
|
--logtostderr=false \
|
|
--cgroup-driver=${cgroup_driver} \
|
|
--listen=/var/run/frakti.sock \
|
|
--streaming-server-addr=${STREAMING_SERVER_ADDR} \
|
|
--hyper-endpoint=127.0.0.1:22318
|
|
MountFlags=shared
|
|
#TasksMax=8192
|
|
LimitNOFILE=1048576
|
|
LimitNPROC=1048576
|
|
LimitCORE=infinity
|
|
TimeoutStartSec=0
|
|
Restart=on-abnormal
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
" > /lib/systemd/system/frakti.service
|
|
|
|
|
|
## start services
|
|
systemctl daemon-reload
|
|
systemctl enable hyperd frakti libvirtd
|
|
systemctl restart hyperd libvirtd
|
|
sleep 5
|
|
systemctl restart frakti
|
|
sleep 5
|
|
|
|
## check
|
|
hyperctl list
|
|
pgrep -f '/usr/bin/frakti'
|
|
[ -e /var/run/frakti.sock ]
|
|
|
|
|
|
|
|
exit 0
|