Enhance documentation
[it/dep.git] / docs / installation-k8s1node.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3 .. ===============LICENSE_START=======================================================
4 .. Copyright (C) 2019 AT&T Intellectual Property 
5 .. ===================================================================================
6 .. This documentation file is distributed under the Creative Commons Attribution 
7 .. 4.0 International License (the "License"); you may not use this file except in 
8 .. compliance with the License.  You may obtain a copy of the License at
9 ..
10 .. http://creativecommons.org/licenses/by/4.0
11 ..
12 .. This file is distributed on an "AS IS" BASIS,
13 .. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 .. See the License for the specific language governing permissions and
15 .. limitations under the License.
16 .. ===============LICENSE_END=========================================================
17
18
19
20 Resource Requirements
21 ---------------------
22
23 To run Near Realtime RAN Controller in a dev testing setting , the minimum requirement for resources is a VM with 4 vCPUs, 16G RAM, and at least 40G of vDisk space.
24
25
26
27 Script for Setting Up 1-node Kubernetes Cluster
28 -----------------------------------------------
29
30
31 The it/dep repo can be used for generating a simple script that can help setting up a one-node Kubernetes cluster for dev and testing purposes.  Related files are under the **ric-infra/00-Kubernetes** directory.
32
33 Configurations
34 --------------
35
36 The generation of the script reads in the parameters from the following files:
37
38 - etc/env.rc: Normally no change needed for this file.  If where the Kubernetes cluster runs has special requirements, such as running private Docker registry with self-signed certificates, or hostnames that can be only resolved  via private /etc/hosts entries, such parameters are entered into this file.
39 - etc/infra.rc: This file specifies the versions docker host, Kubernetes, and Kubernetes CNI versions.  If a version is left empty, the installation will use the default version that the OS package management software would install.
40 - etc/openstack.rc: If the Kubernetes cluster is deployed on Open Stack VMs, this file specifies parameters for accessing the APIs of the Open Stack installation.  This is not supported in Amber release yet.
41
42
43 Generating Set-up Script
44 ------------------------
45
46 After the configurations are updated, the following steps will create a script file that can be used for setting up a one-node Kubernetes cluster.
47
48 ::
49
50   cd bin
51   ./gen-cloud-init.sh
52
53 A file named **k8s-1node-cloud-init.sh** would now appear under the bin directory. 
54
55
56 Setting up Kubernetes Cluster
57 -----------------------------
58
59 The new **k8s-1node-cloud-init.sh** file is now ready for setting up the Kubernetes cluster.  
60
61 It can be run from a root shell of an existing Ubuntu 16.04 or 18.04 VM.  Running this script will replace any existing installation of Docker host, Kubernetes, and Helm on the VM.
62
63 It can also be used as the user-data (a.k.a. cloud-init script) supplicated to Open Stack when launching a new Ubuntu 16.04 or 18.04 VM.
64
65 Upon successful execution of the script, when integrated by the kubectl command, the VM should display information similar to below: 
66
67 ::
68
69   # kubectl get pods --all-namespaces
70   NAMESPACE     NAME                                   READY   STATUS       RESTARTS  AGE
71   kube-system   coredns-5644d7b6d9-4gjp5               1/1     Running      0         103m
72   kube-system   coredns-5644d7b6d9-pvsj8               1/1     Running      0         103m
73   kube-system   etcd-ljitest                           1/1     Running      0         102m
74   kube-system   kube-apiserver-ljitest                 1/1     Running      0         103m
75   kube-system   kube-controller-manager-ljitest        1/1     Running      0         102m
76   kube-system   kube-flannel-ds-amd64-nvjmq            1/1     Running      0         103m
77   kube-system   kube-proxy-867v5                       1/1     Running      0         103m
78   kube-system   kube-scheduler-ljitest                 1/1     Running      0         102m
79   kube-system   tiller-deploy-68bf6dff8f-6pwvc         1/1     Running      0         102m
80