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
|
||||
|
||||
./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
|
||||
|
||||
@ -84,4 +84,4 @@ private keys.
|
||||
|
||||
.. 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
|
||||
|
||||
{
|
||||
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"sku": {
|
||||
"type": "String"
|
||||
},
|
||||
"workspaceName": {
|
||||
"type": "String"
|
||||
},
|
||||
"solutionType": {
|
||||
"type": "String"
|
||||
},
|
||||
},
|
||||
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"sku": {
|
||||
"type": "String"
|
||||
},
|
||||
"workspaceName": {
|
||||
"type": "String"
|
||||
},
|
||||
"solutionType": {
|
||||
"type": "String"
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"apiVersion": "2015-03-20",
|
||||
"type": "Microsoft.OperationalInsights/workspaces",
|
||||
"name": "[parameters('workspaceName')]",
|
||||
"location": "[resourceGroup().location]",
|
||||
"properties": {
|
||||
"sku": {
|
||||
"name": "[parameters('sku')]"
|
||||
}
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"apiVersion": "2015-11-01-preview",
|
||||
"location": "[resourceGroup().location]",
|
||||
"name": "[Concat(parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
||||
"type": "Microsoft.OperationsManagement/solutions",
|
||||
"id": "[Concat(resourceGroup().id, '/providers/Microsoft.OperationsManagement/solutions/', parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
||||
"dependsOn": [
|
||||
"[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
|
||||
],
|
||||
"properties": {
|
||||
"workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
|
||||
},
|
||||
"plan": {
|
||||
"publisher": "Microsoft",
|
||||
"product": "[Concat('OMSGallery/', parameters('solutionType'))]",
|
||||
"name": "[Concat(parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
||||
"promotionCode": ""
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"apiVersion": "2015-03-20",
|
||||
"type": "Microsoft.OperationalInsights/workspaces",
|
||||
"name": "[parameters('workspaceName')]",
|
||||
"location": "[resourceGroup().location]",
|
||||
"properties": {
|
||||
"sku": {
|
||||
"name": "[parameters('sku')]"
|
||||
}
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"apiVersion": "2015-11-01-preview",
|
||||
"location": "[resourceGroup().location]",
|
||||
"name": "[Concat(parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
||||
"type": "Microsoft.OperationsManagement/solutions",
|
||||
"id": "[Concat(resourceGroup().id, '/providers/Microsoft.OperationsManagement/solutions/', parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
||||
"dependsOn": [
|
||||
"[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
|
||||
],
|
||||
"properties": {
|
||||
"workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
|
||||
},
|
||||
"plan": {
|
||||
"publisher": "Microsoft",
|
||||
"product": "[Concat('OMSGallery/', parameters('solutionType'))]",
|
||||
"name": "[Concat(parameters('solutionType'), '(', parameters('workspaceName'), ')')]",
|
||||
"promotionCode": ""
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
An example of the associated parameter file (``--parameters``):
|
||||
@ -104,19 +104,19 @@ An example of the associated parameter file (``--parameters``):
|
||||
.. code-block:: json
|
||||
|
||||
{
|
||||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"sku": {
|
||||
"value": "Free"
|
||||
},
|
||||
"workspaceName": {
|
||||
"value": "work_space"
|
||||
},
|
||||
"solutionType": {
|
||||
"value": "Containers"
|
||||
},
|
||||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"sku": {
|
||||
"value": "Free"
|
||||
},
|
||||
"workspaceName": {
|
||||
"value": "work_space"
|
||||
},
|
||||
"solutionType": {
|
||||
"value": "Containers"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Deploy the OMS Agents
|
||||
|
@ -220,10 +220,9 @@ portal using your admin account, click **APIs** and click on **Integration**
|
||||
for the relevant API.
|
||||
Scroll to the bottom of the page and click the small link
|
||||
in the lower right corner, labelled **Download the NGINX Config files**.
|
||||
You'll get a ``.zip`` file.
|
||||
Unzip it, then open the ``.conf`` file and the ``.lua`` file.
|
||||
Unzip it(if it is a ``zip`` file). Open the ``.conf`` and the ``.lua`` file.
|
||||
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.
|
||||
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
|
||||
|
||||
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):
|
||||
|
||||
.. code:: bash
|
||||
@ -210,7 +214,7 @@ have the Azure DNS prefix name along with a long random string, without the
|
||||
changes to be applied.
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
on ``mongodb-frontend-port`` to the MongoDB backend.
|
||||
|
||||
@ -346,7 +350,7 @@ Step 9.2: NGINX with HTTPS + 3scale
|
||||
|
||||
.. 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
|
||||
@ -854,15 +858,15 @@ To test the NGINX instance with HTTPS and 3scale integration:
|
||||
|
||||
$ 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
|
||||
``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
|
||||
|
||||
./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
|
||||
|
||||
@ -85,5 +85,5 @@ private keys.
|
||||
|
||||
.. 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
|
||||
|
||||
$ 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
|
||||
of a master node from the Azure Portal. For example:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
$ ssh -i ~/.ssh/mykey123.pub ubuntu@mydnsprefix.westeurope.cloudapp.azure.com
|
||||
$ ssh -i ~/.ssh/mykey123 ubuntu@mydnsprefix.westeurope.cloudapp.azure.com
|
||||
|
||||
.. note::
|
||||
|
||||
|
@ -49,7 +49,7 @@ data:
|
||||
# Kubernetes cluster.
|
||||
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.
|
||||
ngx-openresty-instance-name: "<name of the openresty instance>.default.svc.cluster.local"
|
||||
|
||||
@ -95,6 +95,24 @@ data:
|
||||
# the MongoDB backend.
|
||||
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
|
||||
# can remain in the backlog before being reassigned.
|
||||
bigchaindb-backlog-reassign-delay: "120"
|
||||
@ -110,21 +128,4 @@ data:
|
||||
bigchaindb-database-connection-timeout: "5000"
|
||||
|
||||
# bigchaindb-log-level is the log level used to log to the console.
|
||||
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>"
|
||||
bigchaindb-log-level: "debug"
|
@ -15,8 +15,9 @@ metadata:
|
||||
type: Opaque
|
||||
data:
|
||||
# Base64-encoded Group ID
|
||||
# Group ID used by MongoDB deployment
|
||||
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>"
|
||||
---
|
||||
apiVersion: v1
|
||||
@ -27,6 +28,7 @@ metadata:
|
||||
type: Opaque
|
||||
data:
|
||||
# Base64-encoded BigchainDB private key of *this* node
|
||||
# Generated using bigchaindb_driver in the docs
|
||||
private.key: "<b64 encoded BigchainDB private key>"
|
||||
---
|
||||
apiVersion: v1
|
||||
@ -80,7 +82,7 @@ data:
|
||||
crlfile: "<b64 encoded CRL>"
|
||||
# Base64-encoded BigchainDB instance 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>"
|
||||
---
|
||||
apiVersion: v1
|
||||
|
@ -59,7 +59,7 @@ spec:
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: vars
|
||||
key: openresty-backend-host
|
||||
key: openresty-instance-name
|
||||
- name: BIGCHAINDB_BACKEND_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
|
Loading…
x
Reference in New Issue
Block a user