From 891c0a1ab78c4c2f46424fc35c0e99fe0f475c0b Mon Sep 17 00:00:00 2001 From: Guo Ruijing Date: Wed, 27 Dec 2017 15:25:18 -0500 Subject: support kata container in container4nfv deploy k8s/weave + kata container Change-Id: I102bb6ee1ea9abaf164e62b26e3cc16e870d859a Signed-off-by: Guo Ruijing --- ci/deploy.sh | 1 + src/vagrant/kubeadm_kata/Vagrantfile | 30 +++++++++++++++ src/vagrant/kubeadm_kata/deploy.sh | 24 ++++++++++++ src/vagrant/kubeadm_kata/examples/nginx-app.sh | 25 ++++++++++++ src/vagrant/kubeadm_kata/examples/nginx-app.yaml | 31 +++++++++++++++ src/vagrant/kubeadm_kata/host_setup.sh | 44 +++++++++++++++++++++ src/vagrant/kubeadm_kata/kata_setup.sh | 49 ++++++++++++++++++++++++ src/vagrant/kubeadm_kata/master_setup.sh | 34 ++++++++++++++++ src/vagrant/kubeadm_kata/worker_setup.sh | 31 +++++++++++++++ 9 files changed, 269 insertions(+) create mode 100644 src/vagrant/kubeadm_kata/Vagrantfile create mode 100755 src/vagrant/kubeadm_kata/deploy.sh create mode 100755 src/vagrant/kubeadm_kata/examples/nginx-app.sh create mode 100644 src/vagrant/kubeadm_kata/examples/nginx-app.yaml create mode 100644 src/vagrant/kubeadm_kata/host_setup.sh create mode 100644 src/vagrant/kubeadm_kata/kata_setup.sh create mode 100644 src/vagrant/kubeadm_kata/master_setup.sh create mode 100644 src/vagrant/kubeadm_kata/worker_setup.sh diff --git a/ci/deploy.sh b/ci/deploy.sh index 7d71ff3..0069bd7 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -18,6 +18,7 @@ set -ex ../src/vagrant/kubeadm_basic/deploy.sh +../src/vagrant/kubeadm_kata/deploy.sh ../src/vagrant/kubeadm_multus/deploy.sh ../src/vagrant/kubeadm_virtlet/deploy.sh ../src/vagrant/kubeadm_ovsdpdk/deploy.sh diff --git a/src/vagrant/kubeadm_kata/Vagrantfile b/src/vagrant/kubeadm_kata/Vagrantfile new file mode 100644 index 0000000..273157c --- /dev/null +++ b/src/vagrant/kubeadm_kata/Vagrantfile @@ -0,0 +1,30 @@ +$num_workers=2 + +Vagrant.require_version ">= 1.8.6" +Vagrant.configure("2") do |config| + + config.vm.box = "ceph/ubuntu-xenial" + config.vm.provider :libvirt do |libvirt| + libvirt.memory = 4096 + libvirt.cpus = 4 + libvirt.nested = true + end + + config.vm.provision "shell", path: "host_setup.sh", privileged: false + config.vm.provision "shell", path: "kata_setup.sh", privileged: false + + config.vm.define "master" do |config| + config.vm.hostname = "master" + config.vm.provision "shell", path: "master_setup.sh", privileged: false + config.vm.network :private_network, ip: "192.168.1.10" + end + + (1 .. $num_workers).each do |i| + config.vm.define vm_name = "worker%d" % [i] do |config| + config.vm.hostname = vm_name + config.vm.provision "shell", path: "worker_setup.sh", privileged: false + config.vm.network :private_network, ip: "192.168.1.#{i+20}" + end + end + +end diff --git a/src/vagrant/kubeadm_kata/deploy.sh b/src/vagrant/kubeadm_kata/deploy.sh new file mode 100755 index 0000000..275356c --- /dev/null +++ b/src/vagrant/kubeadm_kata/deploy.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# +# Copyright (c) 2017 Intel Corporation +# +# 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. +# + +set -ex +DIR="$(dirname `readlink -f $0`)" + +cd $DIR +../cleanup.sh +vagrant up +vagrant ssh master -c "/vagrant/examples/nginx-app.sh" diff --git a/src/vagrant/kubeadm_kata/examples/nginx-app.sh b/src/vagrant/kubeadm_kata/examples/nginx-app.sh new file mode 100755 index 0000000..96d776c --- /dev/null +++ b/src/vagrant/kubeadm_kata/examples/nginx-app.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# +# Copyright (c) 2017 Intel Corporation +# +# 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. +# + +kubectl create -f /vagrant/examples/nginx-app.yaml +kubectl get nodes +kubectl get services +kubectl get pods +kubectl get rc +sleep 180 +svcip=$(kubectl get services nginx -o json | grep clusterIP | cut -f4 -d'"') +wget http://$svcip diff --git a/src/vagrant/kubeadm_kata/examples/nginx-app.yaml b/src/vagrant/kubeadm_kata/examples/nginx-app.yaml new file mode 100644 index 0000000..f80881a --- /dev/null +++ b/src/vagrant/kubeadm_kata/examples/nginx-app.yaml @@ -0,0 +1,31 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx + labels: + app: nginx +spec: + type: NodePort + ports: + - port: 80 + protocol: TCP + name: http + selector: + app: nginx +--- +apiVersion: v1 +kind: ReplicationController +metadata: + name: nginx +spec: + replicas: 2 + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx + ports: + - containerPort: 80 diff --git a/src/vagrant/kubeadm_kata/host_setup.sh b/src/vagrant/kubeadm_kata/host_setup.sh new file mode 100644 index 0000000..f9e1a76 --- /dev/null +++ b/src/vagrant/kubeadm_kata/host_setup.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# +# Copyright (c) 2017 Intel Corporation +# +# 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. +# + +set -ex + +cat << EOF | sudo tee /etc/hosts +127.0.0.1 localhost +192.168.1.10 master +192.168.1.21 worker1 +192.168.1.22 worker2 +192.168.1.23 worker3 +EOF + +sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D +sudo apt-key adv -k 58118E89F3A912897C070ADBF76221572C52609D +cat << EOF | sudo tee /etc/apt/sources.list.d/docker.list +deb [arch=amd64] https://apt.dockerproject.org/repo ubuntu-xenial main +EOF + +curl -s http://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - +cat < ~/.kube/config || true + r=$(kubectl get pods -n kube-system | grep weave-net | grep -v Run | wc -l) +done + +sudo systemctl restart crio -- cgit 1.2.3-korg