You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/get-started.md
+52-3
Original file line number
Diff line number
Diff line change
@@ -4,9 +4,9 @@ The following example sets up the Ark server and client, then backs up and resto
4
4
5
5
For simplicity, the example uses Minio, an S3-compatible storage service that runs locally on your cluster.
6
6
7
-
**NOTE** The example lets you explore basic Ark functionality. In the real world, however, you would back your cluster up to external storage.
7
+
**NOTE** The example lets you explore basic Ark functionality. Configuring Minio for production is out of scope.
8
8
9
-
See [Set up Ark on your platform][3] for how to configure Ark for a production environment.
9
+
See [Set up Ark on your platform][3] for how to configure Ark for a production environment.
10
10
11
11
### Prerequisites
12
12
@@ -26,7 +26,9 @@ NOTE: Make sure to check out the appropriate version. We recommend that you chec
26
26
27
27
### Set up server
28
28
29
-
1. Start the server and the local storage service. In the root directory of Ark, run:
29
+
These instructions start the Ark server and a Minio instance that is accessible from within the cluster only. See the following section for information about configuring your cluster for outside access to Minio. Outside access is required to access logs and run `ark describe` commands.
30
+
31
+
1. Start the server and the local storage service. In the root directory of Ark, run:
30
32
31
33
```bash
32
34
kubectl apply -f examples/common/00-prereqs.yaml
@@ -46,6 +48,53 @@ NOTE: Make sure to check out the appropriate version. We recommend that you chec
46
48
kubectl get deployments --namespace=nginx-example
47
49
```
48
50
51
+
### (Optional) Expose Minio outside your cluster
52
+
53
+
When you run commands to get logs or describe a backup, the Ark server generates a pre-signed URL to download the requested items. To access these URLs from outside the cluster -- that is, from your Ark client -- you need to make Minio available outside the cluster. You can:
54
+
55
+
- Change the Minio Service type from `ClusterIP` to `NodePort`.
56
+
- Set up Ingress for your cluster, keeping Minio Service type`ClusterIP`.
57
+
58
+
In Ark 0.10, you can also specify the value of a new `publicUrl` field forthe pre-signed URLin your backup storage config.
59
+
60
+
#### Expose Minio with Service of type NodePort
61
+
62
+
The Minio deployment by default specifies a Service of type`ClusterIP`. You can change this to `NodePort` to easily expose a cluster service externally if you can reach the node from your Ark client.
63
+
64
+
You must also get the Minio URL, which you can then specify as the value of the new `publicUrl` field in your backup storage config.
65
+
66
+
1. In `examples/minio/00-minio-deployment.yaml`, change the value of Service `spec.type` from `ClusterIP` to `NodePort`.
67
+
68
+
1. Get the Minio URL:
69
+
70
+
- if you're running Minikube:
71
+
72
+
```shell
73
+
minikube service minio --namespace=heptio-ark --url
74
+
```
75
+
76
+
- in any other environment:
77
+
78
+
1. Get the value of an external IP address or DNS name of any node in your cluster. You must be able to reach this address from the Ark client.
79
+
80
+
1. Append the value of the NodePort to get a complete URL. You can get this value by running:
81
+
82
+
```shell
83
+
kubectl -n heptio-ark get svc/minio -o jsonpath='{.spec.ports[0].nodePort}'
84
+
```
85
+
86
+
1. In `examples/minio/05-ark-backupstoragelocation.yaml`, uncomment the `publicUrl` line and provide this Minio URL as the value of the `publicUrl` field. You must include the `http://` or `https://` prefix.
87
+
88
+
#### Work with Ingress
89
+
90
+
Configuring Ingress for your cluster is out of scope for the Ark documentation. If you have already set up Ingress, however, it makes sense to continue with it while you run the example Ark configuration with Minio.
91
+
92
+
In this case:
93
+
94
+
1. Keep the Service type as `ClusterIP`.
95
+
96
+
1. In `examples/minio/05-ark-backupstoragelocation.yaml`, uncomment the `publicUrl` line and provide the URL and port of your Ingress as the value of the `publicUrl` field.
# Run Ark more securely with restrictive RBAC settings
2
+
3
+
By default Ark runs with an RBAC policy of ClusterRole `cluster-admin`. This is to make sure that Ark can back up or restore anything in your cluster. But `cluster-admin` access is wide open -- it gives Ark components access to everything in your cluster. Depending on your environment and your security needs, you should consider whether to configure additional RBAC policies with more restrictive access.
4
+
5
+
**Note:** Roles and RoleBindings are associated with a single namespaces, not with an entire cluster. PersistentVolume backups are associated only with an entire cluster. This means that any backups or restores that use a restrictive Role and RoleBinding pair can manage only the resources that belong to the namespace. You do not need a wide open RBAC policy to manage PersistentVolumes, however. You can configure a ClusterRole and ClusterRoleBinding that allow backups and restores only of PersistentVolumes, not of all objects in the cluster.
6
+
7
+
For more information about RBAC and access control generally in Kubernetes, see the Kubernetes documentation about [access control][1], [managing service accounts][2], and [RBAC authorization][3].
Copy file name to clipboardexpand all lines: docs/versions.md
+8
Original file line number
Diff line number
Diff line change
@@ -14,5 +14,13 @@ Breaking changes are documented in the release notes and in the documentation.
14
14
15
15
- See [Upgrading to version 0.10.0][2]
16
16
17
+
## Ark versions and Kubernetes versions
18
+
19
+
Not all Ark versions support all versions of Kubernetes. You should be aware of the following known limitations:
20
+
21
+
- Ark version 0.9.0 requires Kubernetes version 1.8 or later. In version 0.9.1, Ark was updated to support earlier versions.
22
+
- Restic support requires Kubernetes version 1.10 or later, or an earlier version with the mount propagation feature enabled. See [Restic Integration][3].
0 commit comments