This page currently only covers the set up for SDN-C clustering on single node Kubernetes.
About the SDN-C Clustering
The following diagram illustrates the desired SDN-C cluster deployment in this page(as described in
Jira Legacy |
---|
server | System Jira |
---|
columns | key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution |
---|
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 |
---|
key | SDNC-163 |
---|
|
) from POD and SERVICE view, which will have:
- 2 DB pods
- 3 SDN-C sdnc (ODL) pods
- 2 1 admin (portal) podspod
- 1 dgbuilder pod
Gliffy |
---|
name | Pod, service, deploy kind |
---|
pagePin | 10 |
---|
|
SDN-C DB Clustering details
See details from SDN-C DB (MySQL) Clustered Deployment.
Deployment Setup Steps
Child pages (Children Display) |
---|
style | h3 |
---|
page | Deployment Setup StepsYou can use Rancher or kubeadm to deploy your Kubernetes cluster:
Additional Information
SDN-C Startup Order
Gliffy |
---|
name | sdnc pods start up order |
---|
pagePin | 3 |
---|
|
Troubleshoot SDN-C pods are not start up in order
Usually, this is caused by init-container malfuntion. You can troubleshoot it by the following steps:
- Do a describe of the pod using command kubectl describe pod <pod-name>, to ensure the Init Container section is presented as your defined in your yaml template.
If it does not exist, it is possible that your Kubernetes version supports a different format for the init-containers:
init-containers syntax supported by Kubernetes 1.5, 1.6 and 1.7 and not supported by Kubernetes 1.8 and greater | initContainers syntax supported from Kubernetes 1.6 and greater |
---|
Init container is defined under spec.template.metadata.annotations."pod.beta.kubernetes.io/init-containers Code Block |
---|
language | xml |
---|
title | An example of init container by beta annotation |
---|
linenumbers | true |
---|
collapse | true |
---|
| apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: sdnc
...
spec:
...
template:
metadata:
...
annotations:
pod.beta.kubernetes.io/init-containers: '[
{
"args": [
"--container-name",
"sdnc-db-container"
],
"command": [
"/root/ready.py"
],
"env": [
{
"name": "NAMESPACE",
"valueFrom": {
"fieldRef": {
"apiVersion": "v1",
"fieldPath": "metadata.namespace"
}
}
}
],
"image": "{{ .Values.image.readiness }}",
"imagePullPolicy": "{{ .Values.pullPolicy }}",
"name": "sdnc-readiness"
}
]'
spec:
containers:
... |
| Init container is defined under spec.template.spec.initContainers Code Block |
---|
language | xml |
---|
title | An example of init container by spec.initContainers |
---|
linenumbers | true |
---|
collapse | true |
---|
| apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: sdnc
...
spec:
...
template:
...
spec:
initContainers:
- command:
- /root/ready.py
- "--container-name"
- "sdnc-db-container"
env:
- name: NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
image: "{{ .Values.image.readiness }}"
imagePullPolicy: {{ .Values.pullPolicy }}
name: sdnc-readiness
containers:
... |
|
Restart Dead Instance (start a new one in its place)
When a pod is dead, Kubernetes automatically starts a new one to replace the dead pod.
...
Expand |
---|
title | Example of restarting dead instance by deleting pod |
---|
|
Expand |
---|
title | sdnc-0 pod runs fine at the beginning |
---|
| Image Removed Image Added
|
Expand |
---|
title | manually delete the sdnc-0 pod |
---|
| Image Removed Image Added
|
Expand |
---|
title | once the sdnc-0 pod is fully terminated, a new sdnc-0 pod will be initialized |
---|
| Image Removed Image Added
|
Expand |
---|
title | The new sdnc-0 pod will be brought to running status to replace the initial sdnc-0 |
---|
| Image Removed Image Added
|
Expand |
---|
title | The new and initial sdnc-0 pod has the same name (although with different internal IP) |
---|
| Description of Initial sdnc-0 | Description of restarted sdnc-0 |
---|
ubuntu@sdnc-k8s:~/oom/kubernetes/config$ kubectl describe pod sdnc-0 -n onap-sdnc Name: sdnc-0 Namespace: onap-sdnc Node: sdnc-k8s-2/10.147.90.6 Start Time: Thu, 23 Nov 2017 22:37:00 +0000 Labels: app=sdnc controller-revision-hash=sdnc-2443484326 Annotations: kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"StatefulSet","namespace":"onap-sdnc","name":"sdnc","uid":"a576a1a3-d09f-11e7-957f-0269cb13eff1","apiVersio... pod.alpha.kubernetes.io/init-container-statuses=[{"name":"sdnc-readiness","state":{"terminated":{"exitCode":0,"reason":"Completed","startedAt":"2017-11-23T22:37:08Z","finishedAt":"2017-11-23T22:37:53Z... pod.alpha.kubernetes.io/init-containers=[{"name":"sdnc-readiness","image":"oomk8s/readiness-check:1.0.0","command":["/root/ready.py"],"args":["--container-name","sdnc-db-container"],"env":[{"name":"NA... pod.beta.kubernetes.io/init-container-statuses=[{"name":"sdnc-readiness","state":{"terminated":{"exitCode":0,"reason":"Completed","startedAt":"2017-11-23T22:37:08Z","finishedAt":"2017-11-23T22:37:53Z"... pod.beta.kubernetes.io/init-containers=[{"name":"sdnc-readiness","image":"oomk8s/readiness-check:1.0.0","command":["/root/ready.py"],"args":["--container-name","sdnc-db-container"],"env":[{"name":"NAM... Status: Running IP: 10.42.107.61 Created By: StatefulSet/sdnc Controlled By: StatefulSet/sdnc ... | ubuntu@sdnc-k8s:~/oom/kubernetes/oneclick$ kubectl describe pod sdnc-0 -n onap-sdnc Name: sdnc-0 Namespace: onap-sdnc Node: sdnc-k8s-2/10.147.90.6 Start Time: Thu, 23 Nov 2017 22:54:10 +0000 Labels: app=sdnc controller-revision-hash=sdnc-2443484326 Annotations: kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"StatefulSet","namespace":"onap-sdnc","name":"sdnc","uid":"a576a1a3-d09f-11e7-957f-0269cb13eff1","apiVersio... pod.alpha.kubernetes.io/init-container-statuses=[{"name":"sdnc-readiness","state":{"terminated":{"exitCode":0,"reason":"Completed","startedAt":"2017-11-23T22:54:15Z","finishedAt":"2017-11-23T22:54:15Z... pod.alpha.kubernetes.io/init-containers=[{"name":"sdnc-readiness","image":"oomk8s/readiness-check:1.0.0","command":["/root/ready.py"],"args":["--container-name","sdnc-db-container"],"env":[{"name":"NA... pod.beta.kubernetes.io/init-container-statuses=[{"name":"sdnc-readiness","state":{"terminated":{"exitCode":0,"reason":"Completed","startedAt":"2017-11-23T22:54:15Z","finishedAt":"2017-11-23T22:54:15Z"... pod.beta.kubernetes.io/init-containers=[{"name":"sdnc-readiness","image":"oomk8s/readiness-check:1.0.0","command":["/root/ready.py"],"args":["--container-name","sdnc-db-container"],"env":[{"name":"NAM... Status: Running IP: 10.42.185.227 Created By: StatefulSet/sdnc Controlled By: StatefulSet/sdnc ... |
|
|
...
Source Code
The source code is currently temporary shared through gerrit topic SDNC-163 until it is commited into gerrit.