mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Update guide to setup bdb+kubernetes+azure setup
-- Fixed typos in the guide -- Fixed some syntax errors in commandline instructions -- Fixed strucuture of sample jsons -- Fixed bugs in nginx-https-dep file, it was trying to access an invalid variable in the configmap. -- Improved some docs to give more clarity for the user. Atleast all the issues I faced. :)
This commit is contained in:
parent
d323ad73c2
commit
b56f8a6213
@ -67,7 +67,7 @@ directory and do something like:
|
|||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
./easyrsa import-req bdb-instance-0.req bdb-instance-0
|
./easyrsa import-req /path/to/bdb-instance-0.req bdb-instance-0
|
||||||
|
|
||||||
./easyrsa sign-req client bdb-instance-0
|
./easyrsa sign-req client bdb-instance-0
|
||||||
|
|
||||||
@ -84,4 +84,4 @@ private keys.
|
|||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
cat bdb-instance-0.crt bdb-instance-0.key > bdb-instance-0.pem
|
cat /path/to/bdb-instance-0.crt /path/to/bdb-instance-0.key > bdb-instance-0.pem
|
||||||
|
@ -50,53 +50,53 @@ An example of a simple template file (``--template-file``):
|
|||||||
.. code-block:: json
|
.. code-block:: json
|
||||||
|
|
||||||
{
|
{
|
||||||
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
|
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
|
||||||
"contentVersion": "1.0.0.0",
|
"contentVersion": "1.0.0.0",
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"sku": {
|
"sku": {
|
||||||
"type": "String"
|
"type": "String"
|
||||||
},
|
},
|
||||||
"workspaceName": {
|
"workspaceName": {
|
||||||
"type": "String"
|
"type": "String"
|
||||||
},
|
},
|
||||||
"solutionType": {
|
"solutionType": {
|
||||||
"type": "String"
|
"type": "String"
|
||||||
},
|
},
|
||||||
},
|
|
||||||
"resources": [
|
"resources": [
|
||||||
{
|
{
|
||||||
"apiVersion": "2015-03-20",
|
"apiVersion": "2015-03-20",
|
||||||
"type": "Microsoft.OperationalInsights/workspaces",
|
"type": "Microsoft.OperationalInsights/workspaces",
|
||||||
"name": "[parameters('workspaceName')]",
|
"name": "[parameters('workspaceName')]",
|
||||||
"location": "[resourceGroup().location]",
|
"location": "[resourceGroup().location]",
|
||||||
"properties": {
|
"properties": {
|
||||||
"sku": {
|
"sku": {
|
||||||
"name": "[parameters('sku')]"
|
"name": "[parameters('sku')]"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"resources": [
|
"resources": [
|
||||||
{
|
{
|
||||||
"apiVersion": "2015-11-01-preview",
|
"apiVersion": "2015-11-01-preview",
|
||||||
"location": "[resourceGroup().location]",
|
"location": "[resourceGroup().location]",
|
||||||
"name": "[Concat(parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
"name": "[Concat(parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
||||||
"type": "Microsoft.OperationsManagement/solutions",
|
"type": "Microsoft.OperationsManagement/solutions",
|
||||||
"id": "[Concat(resourceGroup().id, '/providers/Microsoft.OperationsManagement/solutions/', parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
"id": "[Concat(resourceGroup().id, '/providers/Microsoft.OperationsManagement/solutions/', parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
||||||
"dependsOn": [
|
"dependsOn": [
|
||||||
"[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
|
"[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
"workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
|
"workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
|
||||||
},
|
},
|
||||||
"plan": {
|
"plan": {
|
||||||
"publisher": "Microsoft",
|
"publisher": "Microsoft",
|
||||||
"product": "[Concat('OMSGallery/', parameters('solutionType'))]",
|
"product": "[Concat('OMSGallery/', parameters('solutionType'))]",
|
||||||
"name": "[Concat(parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
"name": "[Concat(parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
||||||
"promotionCode": ""
|
"promotionCode": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
An example of the associated parameter file (``--parameters``):
|
An example of the associated parameter file (``--parameters``):
|
||||||
@ -104,19 +104,19 @@ An example of the associated parameter file (``--parameters``):
|
|||||||
.. code-block:: json
|
.. code-block:: json
|
||||||
|
|
||||||
{
|
{
|
||||||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
|
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
|
||||||
"contentVersion": "1.0.0.0",
|
"contentVersion": "1.0.0.0",
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"sku": {
|
"sku": {
|
||||||
"value": "Free"
|
"value": "Free"
|
||||||
},
|
},
|
||||||
"workspaceName": {
|
"workspaceName": {
|
||||||
"value": "work_space"
|
"value": "work_space"
|
||||||
},
|
},
|
||||||
"solutionType": {
|
"solutionType": {
|
||||||
"value": "Containers"
|
"value": "Containers"
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Deploy the OMS Agents
|
Deploy the OMS Agents
|
||||||
|
@ -220,10 +220,9 @@ portal using your admin account, click **APIs** and click on **Integration**
|
|||||||
for the relevant API.
|
for the relevant API.
|
||||||
Scroll to the bottom of the page and click the small link
|
Scroll to the bottom of the page and click the small link
|
||||||
in the lower right corner, labelled **Download the NGINX Config files**.
|
in the lower right corner, labelled **Download the NGINX Config files**.
|
||||||
You'll get a ``.zip`` file.
|
Unzip it(if it is a ``zip`` file). Open the ``.conf`` and the ``.lua`` file.
|
||||||
Unzip it, then open the ``.conf`` file and the ``.lua`` file.
|
|
||||||
You should be able to find all the values in those files.
|
You should be able to find all the values in those files.
|
||||||
You have to be careful because it will have values for *all* your APIs,
|
You have to be careful because it will have values for **all** your APIs,
|
||||||
and some values vary from API to API.
|
and some values vary from API to API.
|
||||||
The ``version-header`` is the timestamp in a line that looks like:
|
The ``version-header`` is the timestamp in a line that looks like:
|
||||||
|
|
||||||
|
@ -87,6 +87,10 @@ You can connect to your cluster's
|
|||||||
|
|
||||||
$ kubectl proxy -p 8001
|
$ kubectl proxy -p 8001
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
$ az acs kubernetes browse -g [Resource Group] -n [Container service instance name] --ssh-key-file /path/to/privateKey
|
||||||
|
|
||||||
or, if you prefer to be explicit about the context (explained above):
|
or, if you prefer to be explicit about the context (explained above):
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
@ -210,7 +214,7 @@ have the Azure DNS prefix name along with a long random string, without the
|
|||||||
changes to be applied.
|
changes to be applied.
|
||||||
|
|
||||||
To verify the DNS setting is operational, you can run ``nslookup <DNS
|
To verify the DNS setting is operational, you can run ``nslookup <DNS
|
||||||
name added in ConfigMap>`` from your local Linux shell.
|
name added in Azure configuration>`` from your local Linux shell.
|
||||||
|
|
||||||
This will ensure that when you scale the replica set later, other MongoDB
|
This will ensure that when you scale the replica set later, other MongoDB
|
||||||
members in the replica set can reach this instance.
|
members in the replica set can reach this instance.
|
||||||
@ -295,7 +299,7 @@ Step 9: Start the NGINX Kubernetes Deployment
|
|||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
* NGINX is used as a proxy to OpenResty, BigchainDB and MongoDB instances in
|
* NGINX is used as a proxy to OpenResty, BigchainDB and MongoDB instances in
|
||||||
the node. It proxies HTTP/HTTPS requests on the ``clusted-frontend-port``
|
the node. It proxies HTTP/HTTPS requests on the ``cluster-frontend-port``
|
||||||
to the corresponding OpenResty or BigchainDB backend, and TCP connections
|
to the corresponding OpenResty or BigchainDB backend, and TCP connections
|
||||||
on ``mongodb-frontend-port`` to the MongoDB backend.
|
on ``mongodb-frontend-port`` to the MongoDB backend.
|
||||||
|
|
||||||
@ -346,7 +350,7 @@ Step 9.2: NGINX with HTTPS + 3scale
|
|||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ kubectl --context k8s-bdb-test-cluster-0 apply -f nginx-3scale/nginx-3scale-dep.yaml
|
$ kubectl --context k8s-bdb-test-cluster-0 apply -f nginx-https/nginx-https-dep.yaml
|
||||||
|
|
||||||
|
|
||||||
Step 10: Create Kubernetes Storage Classes for MongoDB
|
Step 10: Create Kubernetes Storage Classes for MongoDB
|
||||||
@ -854,15 +858,15 @@ To test the NGINX instance with HTTPS and 3scale integration:
|
|||||||
|
|
||||||
$ nslookup ngx-https-instance-0
|
$ nslookup ngx-https-instance-0
|
||||||
|
|
||||||
$ dig +noall +answer _public-secure-cluster-port._.tcp.ngx-https-instance-0.default.svc.cluster.local SRV
|
$ dig +noall +answer _public-secure-cluster-port._tcp.ngx-https-instance-0.default.svc.cluster.local SRV
|
||||||
|
|
||||||
$ dig +noall +answer _public-mdb-port._.tcp.ngx-https-instance-0.default.svc.cluster.local SRV
|
$ dig +noall +answer _public-mdb-port._tcp.ngx-https-instance-0.default.svc.cluster.local SRV
|
||||||
|
|
||||||
$ dig +noall +answer _public-insecure-cluster-port._.tcp.ngx-https-instance-0.default.svc.cluster.local SRV
|
$ dig +noall +answer _public-insecure-cluster-port._tcp.ngx-https-instance-0.default.svc.cluster.local SRV
|
||||||
|
|
||||||
$ wsc -er wss://ngx-https-instance-0/api/v1/streams/valid_transactions
|
$ wsc -er wss://<cluster-fqdn>/api/v1/streams/valid_transactions
|
||||||
|
|
||||||
$ curl -X GET http://ngx-https-instance-0:27017
|
$ curl -X GET https://<cluster-fqdn>
|
||||||
|
|
||||||
The above curl command should result in the response
|
The above curl command should result in the response
|
||||||
``It looks like you are trying to access MongoDB over HTTP on the native driver port.``
|
``It looks like you are trying to access MongoDB over HTTP on the native driver port.``
|
||||||
|
@ -68,7 +68,7 @@ directory and do something like:
|
|||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
./easyrsa import-req mdb-instance-0.req mdb-instance-0
|
./easyrsa import-req /path/to/mdb-instance-0.req mdb-instance-0
|
||||||
|
|
||||||
./easyrsa --subject-alt-name=DNS:localhost,DNS:mdb-instance-0 sign-req server mdb-instance-0
|
./easyrsa --subject-alt-name=DNS:localhost,DNS:mdb-instance-0 sign-req server mdb-instance-0
|
||||||
|
|
||||||
@ -85,5 +85,5 @@ private keys.
|
|||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
cat mdb-instance-0.crt mdb-instance-0.key > mdb-instance-0.pem
|
cat /path/to/mdb-instance-0.crt /path/to/mdb-instance-0.key > mdb-instance-0.pem
|
||||||
|
|
||||||
|
@ -128,14 +128,14 @@ You can SSH to one of the just-deployed Kubernetes "master" nodes
|
|||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ ssh -i ~/.ssh/<name>.pub ubuntu@<master-ip-address-or-hostname>
|
$ ssh -i ~/.ssh/<name> ubuntu@<master-ip-address-or-hostname>
|
||||||
|
|
||||||
where you can get the IP address or hostname
|
where you can get the IP address or hostname
|
||||||
of a master node from the Azure Portal. For example:
|
of a master node from the Azure Portal. For example:
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ ssh -i ~/.ssh/mykey123.pub ubuntu@mydnsprefix.westeurope.cloudapp.azure.com
|
$ ssh -i ~/.ssh/mykey123 ubuntu@mydnsprefix.westeurope.cloudapp.azure.com
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ data:
|
|||||||
# Kubernetes cluster.
|
# Kubernetes cluster.
|
||||||
ngx-mdb-instance-name: "<name of the mdb instance>.default.svc.cluster.local"
|
ngx-mdb-instance-name: "<name of the mdb instance>.default.svc.cluster.local"
|
||||||
|
|
||||||
# ngx-openresty-instance-name is the FQDN of the MongoDB instance in this
|
# ngx-openresty-instance-name is the FQDN of the OpenResty instance in this
|
||||||
# Kubernetes cluster.
|
# Kubernetes cluster.
|
||||||
ngx-openresty-instance-name: "<name of the openresty instance>.default.svc.cluster.local"
|
ngx-openresty-instance-name: "<name of the openresty instance>.default.svc.cluster.local"
|
||||||
|
|
||||||
@ -95,6 +95,24 @@ data:
|
|||||||
# the MongoDB backend.
|
# the MongoDB backend.
|
||||||
bigchaindb-database-name: "bigchain"
|
bigchaindb-database-name: "bigchain"
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: bdb-config
|
||||||
|
namespace: default
|
||||||
|
data:
|
||||||
|
# Colon-separated list of all *other* nodes' BigchainDB public keys.
|
||||||
|
bdb-keyring: "<':' separated list of public keys>"
|
||||||
|
|
||||||
|
# BigchainDB instance authentication user name
|
||||||
|
bdb-user: "<user name>"
|
||||||
|
|
||||||
|
# BigchainDB public key of *this* node.
|
||||||
|
# Generated using bigchaindb_driver in the docs
|
||||||
|
# Example: "EPQk5i5yYpoUwGVM8VKZRjM8CYxB6j8Lu8i8SG7kGGce"
|
||||||
|
bdb-public-key: "<public key>"
|
||||||
|
|
||||||
# bigchaindb-backlog-reassign-delay is the number of seconds a transaction
|
# bigchaindb-backlog-reassign-delay is the number of seconds a transaction
|
||||||
# can remain in the backlog before being reassigned.
|
# can remain in the backlog before being reassigned.
|
||||||
bigchaindb-backlog-reassign-delay: "120"
|
bigchaindb-backlog-reassign-delay: "120"
|
||||||
@ -110,21 +128,4 @@ data:
|
|||||||
bigchaindb-database-connection-timeout: "5000"
|
bigchaindb-database-connection-timeout: "5000"
|
||||||
|
|
||||||
# bigchaindb-log-level is the log level used to log to the console.
|
# bigchaindb-log-level is the log level used to log to the console.
|
||||||
bigchaindb-log-level: "debug"
|
bigchaindb-log-level: "debug"
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: bdb-config
|
|
||||||
namespace: default
|
|
||||||
data:
|
|
||||||
# Colon-separated list of all *other* nodes' BigchainDB public keys.
|
|
||||||
bdb-keyring: "<':' separated list of public keys>"
|
|
||||||
|
|
||||||
# BigchainDB instance authentication user name
|
|
||||||
bdb-user: "<user name>"
|
|
||||||
|
|
||||||
# BigchainDB public key of *this* node.
|
|
||||||
# Example: "EPQk5i5yYpoUwGVM8VKZRjM8CYxB6j8Lu8i8SG7kGGce"
|
|
||||||
bdb-public-key: "<public key>"
|
|
@ -15,8 +15,9 @@ metadata:
|
|||||||
type: Opaque
|
type: Opaque
|
||||||
data:
|
data:
|
||||||
# Base64-encoded Group ID
|
# Base64-encoded Group ID
|
||||||
|
# Group ID used by MongoDB deployment
|
||||||
group-id: "<b64 encoded Group ID>"
|
group-id: "<b64 encoded Group ID>"
|
||||||
# Base64-encoded Agent API Key
|
# Base64-encoded MongoDB Agent API Key for the group
|
||||||
agent-api-key: "<b64 encoded Agent API Key>"
|
agent-api-key: "<b64 encoded Agent API Key>"
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@ -27,6 +28,7 @@ metadata:
|
|||||||
type: Opaque
|
type: Opaque
|
||||||
data:
|
data:
|
||||||
# Base64-encoded BigchainDB private key of *this* node
|
# Base64-encoded BigchainDB private key of *this* node
|
||||||
|
# Generated using bigchaindb_driver in the docs
|
||||||
private.key: "<b64 encoded BigchainDB private key>"
|
private.key: "<b64 encoded BigchainDB private key>"
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@ -80,7 +82,7 @@ data:
|
|||||||
crlfile: "<b64 encoded CRL>"
|
crlfile: "<b64 encoded CRL>"
|
||||||
# Base64-encoded BigchainDB instance certificate
|
# Base64-encoded BigchainDB instance certificate
|
||||||
bdb-instance.pem: "<b64 encoded certificate>"
|
bdb-instance.pem: "<b64 encoded certificate>"
|
||||||
# Base64-encoded private key
|
# Base64-encoded private key (<bdb-instance-name>.key)
|
||||||
bdb-instance.key: "<b64 encoded private key>"
|
bdb-instance.key: "<b64 encoded private key>"
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
|
@ -59,7 +59,7 @@ spec:
|
|||||||
valueFrom:
|
valueFrom:
|
||||||
configMapKeyRef:
|
configMapKeyRef:
|
||||||
name: vars
|
name: vars
|
||||||
key: openresty-backend-host
|
key: openresty-instance-name
|
||||||
- name: BIGCHAINDB_BACKEND_HOST
|
- name: BIGCHAINDB_BACKEND_HOST
|
||||||
valueFrom:
|
valueFrom:
|
||||||
configMapKeyRef:
|
configMapKeyRef:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user