Table of Contents |
---|
...
This script will create a Kubernetes master node with Kubeadm and install calico network plugin. Some other needed tools such as Docker, Kubectl and Helm will be installed as well.
From the output of the script, you should see a command on how to join a node to the created Kubernets cluster. Note that this is an example, the token and cert-hash of your installation will be different, please copy & paste the command to somewhere, we will need it later.
Code Block | ||||
---|---|---|---|---|
| ||||
You can now join any number of machines by running the following on each node as root: kubeadm join 10.12.5.104:6443 --token 1x62yf.60ys5p2iw13tx2t8 --discovery-token-ca-cert-hash sha256:f06628c7cee002b262e69f3f9efadf47bdec125e19606ebff743a3e514a8383b |
Kubernetes worker Node
Log in the worker node machine, run this script to create a kubernetes worker node:
Code Block | ||||
---|---|---|---|---|
| ||||
./2_install_k8s_minion.sh |
...
Code Block | ||||
---|---|---|---|---|
| ||||
kubectl get all -n onap NAME READY STATUS RESTARTS AGE pod/msb-kube2msb-77ccb675dd-rhfn7 1/1 Running 0 3h pod/msb-msb-consul-646987f5cf-qms5v 2/2 Running 0 3h pod/msb-msb-discovery-7647f6476f-cl6xw 3/3 Running 0 3h pod/msb-msb-eag-d678c65d6-fmfn6 3/3 Running 0 3h pod/msb-msb-iag-647d5f998c-dc766 3/3 Running 0 3h pod/multicloud-multicloud-5679bd9876-tzxzw 2/2 Running 0 1h pod/multicloud-multicloud-ocata-774579596-f7smf 3/3 Running 0 1h pod/multicloud-multicloud-vio-8c7dbc8d5-lfcw6 3/3 Running 0 1h pod/multicloud-multicloud-windriver-85b595675d-5vx45 3/3 Running 0 1h pod/vfc-vfc-catalog-79764dfd8f-rkx6f 2/2 Running 1 2d pod/vfc-vfc-ems-driver-75bc68b946-6r6r6 1/1 Running 1 2d pod/vfc-vfc-generic-vnfm-driver-69bf778bfd-pscjn 2/2 Running 0 2d pod/vfc-vfc-huawei-vnfm-driver-8574569f4c-8jwc4 2/2 Running 1 2d pod/vfc-vfc-juju-vnfm-driver-6dfd876bb8-bh7dq 2/2 Running 0 2d pod/vfc-vfc-multivim-proxy-58c7bd47dc-7qdtd 1/1 Running 0 2d pod/vfc-vfc-nokia-v2vnfm-driver-7b77c469bd-krfrw 1/1 Running 0 2d pod/vfc-vfc-nokia-vnfm-driver-98fbdb5b5-p9zqw 2/2 Running 0 2d pod/vfc-vfc-nslcm-74956bb876-v9kbt 2/2 Running 0 2d pod/vfc-vfc-resmgr-57dc4c98b5-dzp7f 2/2 Running 0 2d pod/vfc-vfc-vnflcm-6f9dc7df44-hncf4 2/2 Running 1 2d pod/vfc-vfc-vnfmgr-5585c688c6-7qrnp 2/2 Running 0 2d pod/vfc-vfc-vnfres-54bc985599-9zkqn 2/2 Running 0 2d pod/vfc-vfc-workflow-6db56f95b9-np8tg 1/1 Running 1 2d pod/vfc-vfc-workflow-engine-7fb49fd974-kcb8q 1/1 Running 1 2d pod/vfc-vfc-zte-sdnc-driver-585d449797-87nhp 1/1 Running 0 2d pod/vfc-vfc-zte-vnfm-driver-59d4756fbc-rpn9v 2/2 Running 0 2d NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/msb-consul NodePort 10.96.255.198 <none> 8500:30285/TCP 3h service/msb-discovery NodePort 10.105.163.81 <none> 10081:30281/TCP 3h service/msb-eag NodePort 10.100.221.66 <none> 80:30282/TCP,443:30284/TCP 3h service/msb-iag NodePort 10.96.179.117 <none> 80:30280/TCP,443:30283/TCP 3h service/multicloud NodePort 10.102.72.237 <none> 9001:30291/TCP 1h service/multicloud-ocata NodePort 10.99.131.129 <none> 9006:30293/TCP 1h service/multicloud-vio NodePort 10.111.175.58 <none> 9004:30292/TCP 1h service/multicloud-windriver NodePort 10.110.92.61 <none> 9005:30294/TCP 1h service/vfc-catalog ClusterIP 10.99.98.115 <none> 8806/TCP 2d service/vfc-ems-driver ClusterIP 10.96.189.14 <none> 8206/TCP 2d service/vfc-generic-vnfm-driver ClusterIP 10.109.48.184 <none> 8484/TCP 2d service/vfc-huawei-vnfm-driver ClusterIP 10.104.208.38 <none> 8482/TCP,8483/TCP 2d service/vfc-juju-vnfm-driver ClusterIP 10.96.182.14 <none> 8483/TCP 2d service/vfc-multivim-proxy ClusterIP 10.107.106.216 <none> 8481/TCP 2d service/vfc-nokia-v2vnfm-driver ClusterIP 10.107.12.32 <none> 8089/TCP 2d service/vfc-nokia-vnfm-driver ClusterIP 10.102.179.150 <none> 8486/TCP 2d service/vfc-nslcm ClusterIP 10.106.43.164 <none> 8403/TCP 2d service/vfc-resmgr ClusterIP 10.98.174.184 <none> 8480/TCP 2d service/vfc-vnflcm ClusterIP 10.108.132.123 <none> 8801/TCP 2d service/vfc-vnfmgr ClusterIP 10.108.59.102 <none> 8803/TCP 2d service/vfc-vnfres ClusterIP 10.111.85.161 <none> 8802/TCP 2d service/vfc-workflow ClusterIP 10.97.184.206 <none> 10550/TCP 2d service/vfc-workflow-engine ClusterIP 10.109.175.61 <none> 8080/TCP 2 service/vfc-zte-sdnc-driver ClusterIP 10.103.94.142 <none> 8411/TCP 2d service/vfc-zte-vnfm-driver ClusterIP 10.108.146.237 <none> 8410/TCP 2d |
...
Create an Istio Gateway so we can access the MSB portal out of the Mesh
Code Block | ||||
---|---|---|---|---|
| ||||
cd service-mesh/install/
kubectl apply -f msb-istio-gateway.yaml -n onap |
Now you can open the MSB portal http://${INGRESS_IP}:${INGRESS_PORT}/msb in the browser to see all the registered services.
Note: INGRESS_IP and INGRESS_PORT can be found by executing this command 'kubectl get svc istio-ingressgateway -n istio-system'
Explore Istio Features
Distributed Tracing
...
Then open your browser at http://tracing_node_ip:tracing_node_port/, you should see something similar to the following:
Note
- Tracing_node_port can be found by 'kubctl get svc -n istio-system'.
- ONAP microservices need to propagate the appropriate HTTP headers so that when the proxies send span information, the spans can be correlated correctly into a single trace.
Service Graph
Istio provides a Servicegraph service which generates and visualizes graph representations of the services in the mesh.
Open your browser at http://node_ip:30088/dotviz or http://node_ip:30088/force/forcegraph.html, you should see the service graph:
Metrics Visualization
Istio automatically gathers telemetry for services in a mesh. A Prometheus adapter is plugged into Mixer to serve the generated metric data. A Grafana addon is pre-configured with a Prometheus data source and has an Istio dashboard installed for the metric visualization.
Open your browser at http://node_ip:30300, you should see the Grafana Istio dashboard:
What's the next? we will enable mutual TLS authentication and leverage Istio RBAC for ONAP microservices communication security. Comment here to leave your thoughts or join our weekly project meeting if you're interested.