@@ -19,7 +19,7 @@ possibility of running concurrent tests that use the same hostnames for containe
19
19
In kubedock this is currently solved by 'locking' the namespaces so that tests cannot
20
20
be run concurrently.
21
21
22
- This project is a prototype showing how to fix this problem, allowing multiple
22
+ This project fixes this problem, allowing multiple
23
23
concurrent tests to be run in the same namespace without conflict and without the
24
24
need for locking the namespace.
25
25
46
46
47
47
The above pod has one hostname 'db' and belongs to the network named 'test1'. When running multiple
48
48
pods annotated this way, one gets a view of the network. E.g. there can be a network 'test1' with hosts
49
- 'db' and 'service', and another network 'test2' with hosts 'db' and 'service'. The second part in this
49
+ 'db' and 'service', and another network 'test2' with hosts 'db' and 'service'.
50
+
51
+ The second part in this
50
52
setup is that DNS lookups of 'db' from 'service' in network 'test1' should resolve to the 'db' pod in
51
53
network 'test1', and similarly the lookups of 'db' by 'service' in network 'test2' should resolve to
52
54
the 'db' pod in network 'test2'. See for instance the examples in the test directory.
@@ -57,7 +59,7 @@ This behavior can be achieved as follows:
57
59
* a mapping of hostnames to pod IP in the network and vice versa
58
60
* this datastructure is resolved by a DNS server that looks at the source IP of the DNS
59
61
lookup, which identifies the network. Then within the network, the IP can be looked up based on
60
- hostname (A record), of viceversa, the hostname looked up by IP (PTR record). This DNS server
62
+ hostname (A record), or viceversa, the hostname looked up by IP (PTR record). This DNS server
61
63
is colocated with the above watcher in the same component. When a record cannot be resolved,
62
64
the DNS server delegates to the upstream DNS server which is the standard kubernetes DNS server.
63
65
* on deployment of pods, a pod is mutated using the dnsPolicy and dnsConfig fields to use the
@@ -81,7 +83,7 @@ for detecting problems.
81
83
The advantage of this model is that it is relatively ueasy to integrate with kubedock. All that needs
82
84
to be done is instrument kubedock to add the required annotations and label (and/or modify or configure
83
85
kubedock-dns) so that the mechanism can be used. This solution came out of discussions with the
84
- kubedock maintainer. The next step is to prototype the required changes in kubedock to make it work.
86
+ kubedock maintainer.
85
87
86
88
# Installation from the helm repo
87
89
@@ -108,7 +110,7 @@ helm upgrade --install kubedock-dns helm/kubedock-dns
108
110
109
111
# Kubedock setup
110
112
111
- Next step is to make sure that kubedock is started with the ` --disable-services ` option.
113
+ Kubedock must be started with the ` --disable-services ` option.
112
114
By doing that it becomes possible to run multiple concurrent testcontainer jobs in the same
113
115
namespace.
114
116
0 commit comments