Skip to content

Commit 07aae4f

Browse files
committedDec 18, 2017
update to kubernetes 1.9
1 parent e8d728d commit 07aae4f

11 files changed

+229
-216
lines changed
 

‎README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ The target audience for this tutorial is someone planning to support a productio
1414

1515
Kubernetes The Hard Way guides you through bootstrapping a highly available Kubernetes cluster with end-to-end encryption between components and RBAC authentication.
1616

17-
* [Kubernetes](https://github.com/kubernetes/kubernetes) 1.8.0
18-
* [cri-containerd Container Runtime](https://github.com/kubernetes-incubator/cri-containerd) 1.0.0-alpha.0
17+
* [Kubernetes](https://github.com/kubernetes/kubernetes) 1.9.0
18+
* [cri-containerd Container Runtime](https://github.com/kubernetes-incubator/cri-containerd) 1.0.0-beta.0
1919
* [CNI Container Networking](https://github.com/containernetworking/cni) 0.6.0
20-
* [etcd](https://github.com/coreos/etcd) 3.2.8
20+
* [etcd](https://github.com/coreos/etcd) 3.2.11
2121

2222
## Labs
2323

‎deployments/kube-dns.yaml

+170-156
Original file line numberDiff line numberDiff line change
@@ -1,192 +1,206 @@
1+
# Copyright 2016 The Kubernetes Authors.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
115
apiVersion: v1
2-
kind: ServiceAccount
16+
kind: Service
317
metadata:
418
name: kube-dns
519
namespace: kube-system
20+
labels:
21+
k8s-app: kube-dns
22+
kubernetes.io/cluster-service: "true"
23+
addonmanager.kubernetes.io/mode: Reconcile
24+
kubernetes.io/name: "KubeDNS"
25+
spec:
26+
selector:
27+
k8s-app: kube-dns
28+
clusterIP: 10.32.0.10
29+
ports:
30+
- name: dns
31+
port: 53
32+
protocol: UDP
33+
- name: dns-tcp
34+
port: 53
35+
protocol: TCP
636
---
737
apiVersion: v1
8-
kind: ConfigMap
38+
kind: ServiceAccount
939
metadata:
1040
name: kube-dns
1141
namespace: kube-system
1242
labels:
13-
addonmanager.kubernetes.io/mode: EnsureExists
43+
kubernetes.io/cluster-service: "true"
44+
addonmanager.kubernetes.io/mode: Reconcile
1445
---
1546
apiVersion: v1
16-
kind: Service
47+
kind: ConfigMap
1748
metadata:
1849
name: kube-dns
1950
namespace: kube-system
2051
labels:
21-
k8s-app: kube-dns
22-
kubernetes.io/cluster-service: "true"
23-
kubernetes.io/name: "KubeDNS"
24-
spec:
25-
clusterIP: 10.32.0.10
26-
ports:
27-
- name: dns
28-
port: 53
29-
protocol: UDP
30-
targetPort: 53
31-
- name: dns-tcp
32-
port: 53
33-
protocol: TCP
34-
targetPort: 53
35-
selector:
36-
k8s-app: kube-dns
37-
sessionAffinity: None
38-
type: ClusterIP
52+
addonmanager.kubernetes.io/mode: EnsureExists
3953
---
4054
apiVersion: extensions/v1beta1
4155
kind: Deployment
4256
metadata:
57+
name: kube-dns
58+
namespace: kube-system
4359
labels:
4460
k8s-app: kube-dns
4561
kubernetes.io/cluster-service: "true"
46-
name: kube-dns
47-
namespace: kube-system
62+
addonmanager.kubernetes.io/mode: Reconcile
4863
spec:
49-
replicas: 2
50-
selector:
51-
matchLabels:
52-
k8s-app: kube-dns
64+
# replicas: not specified here:
65+
# 1. In order to make Addon Manager do not reconcile this replicas parameter.
66+
# 2. Default is 1.
67+
# 3. Will be tuned in real time if DNS horizontal auto-scaling is turned on.
5368
strategy:
5469
rollingUpdate:
5570
maxSurge: 10%
5671
maxUnavailable: 0
57-
type: RollingUpdate
72+
selector:
73+
matchLabels:
74+
k8s-app: kube-dns
5875
template:
5976
metadata:
60-
annotations:
61-
scheduler.alpha.kubernetes.io/critical-pod: ""
62-
creationTimestamp: null
6377
labels:
6478
k8s-app: kube-dns
79+
annotations:
80+
scheduler.alpha.kubernetes.io/critical-pod: ''
6581
spec:
66-
containers:
67-
- name: kubedns
68-
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.4
69-
env:
70-
- name: PROMETHEUS_PORT
71-
value: "10055"
72-
args:
73-
- --domain=cluster.local.
74-
- --dns-port=10053
75-
- --config-dir=/kube-dns-config
76-
- --v=2
77-
livenessProbe:
78-
failureThreshold: 5
79-
httpGet:
80-
path: /healthcheck/kubedns
81-
port: 10054
82-
scheme: HTTP
83-
initialDelaySeconds: 60
84-
periodSeconds: 10
85-
successThreshold: 1
86-
timeoutSeconds: 5
87-
ports:
88-
- name: dns-local
89-
containerPort: 10053
90-
protocol: UDP
91-
- name: dns-tcp-local
92-
containerPort: 10053
93-
protocol: TCP
94-
- name: metrics
95-
containerPort: 10055
96-
protocol: TCP
97-
readinessProbe:
98-
failureThreshold: 3
99-
httpGet:
100-
path: /readiness
101-
port: 8081
102-
scheme: HTTP
103-
initialDelaySeconds: 3
104-
periodSeconds: 10
105-
successThreshold: 1
106-
timeoutSeconds: 5
107-
resources:
108-
limits:
109-
memory: 170Mi
110-
requests:
111-
cpu: 100m
112-
memory: 70Mi
113-
volumeMounts:
114-
- name: kube-dns-config
115-
mountPath: /kube-dns-config
116-
- name: dnsmasq
117-
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.4
118-
args:
119-
- -v=2
120-
- -logtostderr
121-
- -configDir=/etc/k8s/dns/dnsmasq-nanny
122-
- -restartDnsmasq=true
123-
- --
124-
- -k
125-
- --cache-size=1000
126-
- --log-facility=-
127-
- --server=/cluster.local/127.0.0.1#10053
128-
- --server=/in-addr.arpa/127.0.0.1#10053
129-
- --server=/ip6.arpa/127.0.0.1#10053
130-
livenessProbe:
131-
failureThreshold: 5
132-
httpGet:
133-
path: /healthcheck/dnsmasq
134-
port: 10054
135-
scheme: HTTP
136-
initialDelaySeconds: 60
137-
periodSeconds: 10
138-
successThreshold: 1
139-
timeoutSeconds: 5
140-
ports:
141-
- name: dns
142-
containerPort: 53
143-
protocol: UDP
144-
- name: dns-tcp
145-
containerPort: 53
146-
protocol: TCP
147-
resources:
148-
requests:
149-
cpu: 150m
150-
memory: 20Mi
151-
volumeMounts:
152-
- name: kube-dns-config
153-
mountPath: /etc/k8s/dns/dnsmasq-nanny
154-
- name: sidecar
155-
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.4
156-
args:
157-
- --v=2
158-
- --logtostderr
159-
- --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.cluster.local,5,A
160-
- --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.cluster.local,5,A
161-
livenessProbe:
162-
failureThreshold: 5
163-
httpGet:
164-
path: /metrics
165-
port: 10054
166-
scheme: HTTP
167-
initialDelaySeconds: 60
168-
periodSeconds: 10
169-
successThreshold: 1
170-
timeoutSeconds: 5
171-
ports:
172-
- name: metrics
173-
containerPort: 10054
174-
protocol: TCP
175-
resources:
176-
requests:
177-
cpu: 10m
178-
memory: 20Mi
179-
dnsPolicy: Default
180-
restartPolicy: Always
181-
serviceAccount: kube-dns
182-
serviceAccountName: kube-dns
183-
terminationGracePeriodSeconds: 30
18482
tolerations:
185-
- key: CriticalAddonsOnly
186-
operator: Exists
83+
- key: "CriticalAddonsOnly"
84+
operator: "Exists"
18785
volumes:
86+
- name: kube-dns-config
87+
configMap:
88+
name: kube-dns
89+
optional: true
90+
containers:
91+
- name: kubedns
92+
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.7
93+
resources:
94+
# TODO: Set memory limits when we've profiled the container for large
95+
# clusters, then set request = limit to keep this container in
96+
# guaranteed class. Currently, this container falls into the
97+
# "burstable" category so the kubelet doesn't backoff from restarting it.
98+
limits:
99+
memory: 170Mi
100+
requests:
101+
cpu: 100m
102+
memory: 70Mi
103+
livenessProbe:
104+
httpGet:
105+
path: /healthcheck/kubedns
106+
port: 10054
107+
scheme: HTTP
108+
initialDelaySeconds: 60
109+
timeoutSeconds: 5
110+
successThreshold: 1
111+
failureThreshold: 5
112+
readinessProbe:
113+
httpGet:
114+
path: /readiness
115+
port: 8081
116+
scheme: HTTP
117+
# we poll on pod startup for the Kubernetes master service and
118+
# only setup the /readiness HTTP server once that's available.
119+
initialDelaySeconds: 3
120+
timeoutSeconds: 5
121+
args:
122+
- --domain=cluster.local.
123+
- --dns-port=10053
124+
- --config-dir=/kube-dns-config
125+
- --v=2
126+
env:
127+
- name: PROMETHEUS_PORT
128+
value: "10055"
129+
ports:
130+
- containerPort: 10053
131+
name: dns-local
132+
protocol: UDP
133+
- containerPort: 10053
134+
name: dns-tcp-local
135+
protocol: TCP
136+
- containerPort: 10055
137+
name: metrics
138+
protocol: TCP
139+
volumeMounts:
188140
- name: kube-dns-config
189-
configMap:
190-
defaultMode: 420
191-
name: kube-dns
192-
optional: true
141+
mountPath: /kube-dns-config
142+
- name: dnsmasq
143+
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.7
144+
livenessProbe:
145+
httpGet:
146+
path: /healthcheck/dnsmasq
147+
port: 10054
148+
scheme: HTTP
149+
initialDelaySeconds: 60
150+
timeoutSeconds: 5
151+
successThreshold: 1
152+
failureThreshold: 5
153+
args:
154+
- -v=2
155+
- -logtostderr
156+
- -configDir=/etc/k8s/dns/dnsmasq-nanny
157+
- -restartDnsmasq=true
158+
- --
159+
- -k
160+
- --cache-size=1000
161+
- --no-negcache
162+
- --log-facility=-
163+
- --server=/cluster.local/127.0.0.1#10053
164+
- --server=/in-addr.arpa/127.0.0.1#10053
165+
- --server=/ip6.arpa/127.0.0.1#10053
166+
ports:
167+
- containerPort: 53
168+
name: dns
169+
protocol: UDP
170+
- containerPort: 53
171+
name: dns-tcp
172+
protocol: TCP
173+
# see: https://github.com/kubernetes/kubernetes/issues/29055 for details
174+
resources:
175+
requests:
176+
cpu: 150m
177+
memory: 20Mi
178+
volumeMounts:
179+
- name: kube-dns-config
180+
mountPath: /etc/k8s/dns/dnsmasq-nanny
181+
- name: sidecar
182+
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.7
183+
livenessProbe:
184+
httpGet:
185+
path: /metrics
186+
port: 10054
187+
scheme: HTTP
188+
initialDelaySeconds: 60
189+
timeoutSeconds: 5
190+
successThreshold: 1
191+
failureThreshold: 5
192+
args:
193+
- --v=2
194+
- --logtostderr
195+
- --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.cluster.local,5,SRV
196+
- --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.cluster.local,5,SRV
197+
ports:
198+
- containerPort: 10054
199+
name: metrics
200+
protocol: TCP
201+
resources:
202+
requests:
203+
memory: 20Mi
204+
cpu: 10m
205+
dnsPolicy: Default # Don't use cluster DNS.
206+
serviceAccountName: kube-dns

‎docs/01-prerequisites.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ This tutorial leverages the [Google Cloud Platform](https://cloud.google.com/) t
1414

1515
Follow the Google Cloud SDK [documentation](https://cloud.google.com/sdk/) to install and configure the `gcloud` command line utility.
1616

17-
Verify the Google Cloud SDK version is 173.0.0 or higher:
17+
Verify the Google Cloud SDK version is 183.0.0 or higher:
1818

1919
```
2020
gcloud version

‎docs/02-client-tools.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ The `kubectl` command line utility is used to interact with the Kubernetes API S
6969
### OS X
7070

7171
```
72-
curl -o kubectl https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/darwin/amd64/kubectl
72+
curl -o kubectl https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/darwin/amd64/kubectl
7373
```
7474

7575
```
@@ -83,7 +83,7 @@ sudo mv kubectl /usr/local/bin/
8383
### Linux
8484

8585
```
86-
wget https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubectl
86+
wget https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kubectl
8787
```
8888

8989
```
@@ -96,7 +96,7 @@ sudo mv kubectl /usr/local/bin/
9696

9797
### Verification
9898

99-
Verify `kubectl` version 1.8.0 or higher is installed:
99+
Verify `kubectl` version 1.9.0 or higher is installed:
100100

101101
```
102102
kubectl version --client
@@ -105,7 +105,7 @@ kubectl version --client
105105
> output
106106
107107
```
108-
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"darwin/amd64"}
108+
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-15T21:07:38Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"darwin/amd64"}
109109
```
110110

111111
Next: [Provisioning Compute Resources](03-compute-resources.md)

‎docs/03-compute-resources.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ In this section a dedicated [Virtual Private Cloud](https://cloud.google.com/com
1717
Create the `kubernetes-the-hard-way` custom VPC network:
1818

1919
```
20-
gcloud compute networks create kubernetes-the-hard-way --mode custom
20+
gcloud compute networks create kubernetes-the-hard-way --subnet-mode custom
2121
```
2222

2323
A [subnet](https://cloud.google.com/compute/docs/vpc/#vpc_networks_and_subnets) must be provisioned with an IP address range large enough to assign a private IP address to each node in the Kubernetes cluster.
@@ -63,9 +63,9 @@ gcloud compute firewall-rules list --filter "network: kubernetes-the-hard-way"
6363
> output
6464
6565
```
66-
NAME NETWORK DIRECTION PRIORITY ALLOW DENY
67-
kubernetes-the-hard-way-allow-external kubernetes-the-hard-way INGRESS 1000 tcp:22,tcp:6443,icmp
68-
kubernetes-the-hard-way-allow-internal kubernetes-the-hard-way INGRESS 1000 tcp,udp,icmp
66+
NAME NETWORK DIRECTION PRIORITY ALLOW DENY
67+
kubernetes-the-hard-way-allow-external kubernetes-the-hard-way INGRESS 1000 tcp:22,tcp:6443,icmp
68+
kubernetes-the-hard-way-allow-internal kubernetes-the-hard-way INGRESS 1000 tcp,udp,icmp
6969
```
7070

7171
### Kubernetes Public IP Address

‎docs/07-bootstrapping-etcd.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ Download the official etcd release binaries from the [coreos/etcd](https://githu
1818

1919
```
2020
wget -q --show-progress --https-only --timestamping \
21-
"https://github.com/coreos/etcd/releases/download/v3.2.8/etcd-v3.2.8-linux-amd64.tar.gz"
21+
"https://github.com/coreos/etcd/releases/download/v3.2.11/etcd-v3.2.11-linux-amd64.tar.gz"
2222
```
2323

2424
Extract and install the `etcd` server and the `etcdctl` command line utility:
2525

2626
```
27-
tar -xvf etcd-v3.2.8-linux-amd64.tar.gz
27+
tar -xvf etcd-v3.2.11-linux-amd64.tar.gz
2828
```
2929

3030
```
31-
sudo mv etcd-v3.2.8-linux-amd64/etcd* /usr/local/bin/
31+
sudo mv etcd-v3.2.11-linux-amd64/etcd* /usr/local/bin/
3232
```
3333

3434
### Configure the etcd Server

‎docs/08-bootstrapping-kubernetes-controllers.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ Download the official Kubernetes release binaries:
1818

1919
```
2020
wget -q --show-progress --https-only --timestamping \
21-
"https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kube-apiserver" \
22-
"https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kube-controller-manager" \
23-
"https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kube-scheduler" \
24-
"https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubectl"
21+
"https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kube-apiserver" \
22+
"https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kube-controller-manager" \
23+
"https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kube-scheduler" \
24+
"https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kubectl"
2525
```
2626

2727
Install the Kubernetes binaries:
@@ -301,12 +301,12 @@ curl --cacert ca.pem https://${KUBERNETES_PUBLIC_ADDRESS}:6443/version
301301
```
302302
{
303303
"major": "1",
304-
"minor": "8",
305-
"gitVersion": "v1.8.0",
306-
"gitCommit": "6e937839ac04a38cac63e6a7a306c5d035fe7b0a",
304+
"minor": "9",
305+
"gitVersion": "v1.9.0",
306+
"gitCommit": "925c127ec6b946659ad0fd596fa959be43f0cc05",
307307
"gitTreeState": "clean",
308-
"buildDate": "2017-09-28T22:46:41Z",
309-
"goVersion": "go1.8.3",
308+
"buildDate": "2017-12-15T20:55:30Z",
309+
"goVersion": "go1.9.2",
310310
"compiler": "gc",
311311
"platform": "linux/amd64"
312312
}

‎docs/09-bootstrapping-kubernetes-workers.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ sudo apt-get -y install socat
2525
```
2626
wget -q --show-progress --https-only --timestamping \
2727
https://github.com/containernetworking/plugins/releases/download/v0.6.0/cni-plugins-amd64-v0.6.0.tgz \
28-
https://github.com/kubernetes-incubator/cri-containerd/releases/download/v1.0.0-alpha.0/cri-containerd-1.0.0-alpha.0.tar.gz \
29-
https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubectl \
30-
https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kube-proxy \
31-
https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubelet
28+
https://github.com/kubernetes-incubator/cri-containerd/releases/download/v1.0.0-beta.0/cri-containerd-1.0.0-beta.0.linux-amd64.tar.gz \
29+
https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kubectl \
30+
https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kube-proxy \
31+
https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kubelet
3232
```
3333

3434
Create the installation directories:
@@ -50,7 +50,7 @@ sudo tar -xvf cni-plugins-amd64-v0.6.0.tgz -C /opt/cni/bin/
5050
```
5151

5252
```
53-
sudo tar -xvf cri-containerd-1.0.0-alpha.0.tar.gz -C /
53+
sudo tar -xvf cri-containerd-1.0.0-beta.0.linux-amd64.tar.gz -C /
5454
```
5555

5656
```
@@ -227,9 +227,9 @@ kubectl get nodes
227227
228228
```
229229
NAME STATUS ROLES AGE VERSION
230-
worker-0 Ready <none> 1m v1.8.0
231-
worker-1 Ready <none> 1m v1.8.0
232-
worker-2 Ready <none> 1m v1.8.0
230+
worker-0 Ready <none> 18s v1.9.0
231+
worker-1 Ready <none> 18s v1.9.0
232+
worker-2 Ready <none> 18s v1.9.0
233233
```
234234

235235
Next: [Configuring kubectl for Remote Access](10-configuring-kubectl.md)

‎docs/10-configuring-kubectl.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ kubectl get nodes
7070
7171
```
7272
NAME STATUS ROLES AGE VERSION
73-
worker-0 Ready <none> 2m v1.8.0
74-
worker-1 Ready <none> 2m v1.8.0
75-
worker-2 Ready <none> 2m v1.8.0
73+
worker-0 Ready <none> 1m v1.9.0
74+
worker-1 Ready <none> 1m v1.9.0
75+
worker-2 Ready <none> 1m v1.9.0
7676
```
7777

7878
Next: [Provisioning Pod Network Routes](11-pod-network-routes.md)

‎docs/11-pod-network-routes.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ gcloud compute routes list --filter "network: kubernetes-the-hard-way"
5050
5151
```
5252
NAME NETWORK DEST_RANGE NEXT_HOP PRIORITY
53-
default-route-77bcc6bee33b5535 kubernetes-the-hard-way 10.240.0.0/24 1000
54-
default-route-b11fc914b626974d kubernetes-the-hard-way 0.0.0.0/0 default-internet-gateway 1000
53+
default-route-236a40a8bc992b5b kubernetes-the-hard-way 0.0.0.0/0 default-internet-gateway 1000
54+
default-route-df77b1e818a56b30 kubernetes-the-hard-way 10.240.0.0/24 1000
5555
kubernetes-route-10-200-0-0-24 kubernetes-the-hard-way 10.200.0.0/24 10.240.0.20 1000
5656
kubernetes-route-10-200-1-0-24 kubernetes-the-hard-way 10.200.1.0/24 10.240.0.21 1000
5757
kubernetes-route-10-200-2-0-24 kubernetes-the-hard-way 10.200.2.0/24 10.240.0.22 1000

‎docs/13-smoke-test.md

+22-23
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,18 @@ gcloud compute ssh controller-0 \
2727
00000010 73 2f 64 65 66 61 75 6c 74 2f 6b 75 62 65 72 6e |s/default/kubern|
2828
00000020 65 74 65 73 2d 74 68 65 2d 68 61 72 64 2d 77 61 |etes-the-hard-wa|
2929
00000030 79 0a 6b 38 73 3a 65 6e 63 3a 61 65 73 63 62 63 |y.k8s:enc:aescbc|
30-
00000040 3a 76 31 3a 6b 65 79 31 3a 70 88 d8 52 83 b7 96 |:v1:key1:p..R...|
31-
00000050 04 a3 bd 7e 42 9e 8a 77 2f 97 24 a7 68 3f c5 ec |...~B..w/.$.h?..|
32-
00000060 9e f7 66 e8 a3 81 fc c8 3c df 63 71 33 0a 87 8f |..f.....<.cq3...|
33-
00000070 0e c7 0a 0a f2 04 46 85 33 92 9a 4b 61 b2 10 c0 |......F.3..Ka...|
34-
00000080 0b 00 05 dd c3 c2 d0 6b ff ff f2 32 3b e0 ec a0 |.......k...2;...|
35-
00000090 63 d3 8b 1c 29 84 88 71 a7 88 e2 26 4b 65 95 14 |c...)..q...&Ke..|
36-
000000a0 dc 8d 59 63 11 e5 f3 4e b4 94 cc 3d 75 52 c7 07 |..Yc...N...=uR..|
37-
000000b0 73 f5 b4 b0 63 aa f9 9d 29 f8 d6 88 aa 33 c4 24 |s...c...)....3.$|
38-
000000c0 ac c6 71 2b 45 98 9e 5f c6 a4 9d a2 26 3c 24 41 |..q+E.._....&<$A|
39-
000000d0 95 5b d3 2c 4b 1e 4a 47 c8 47 c8 f3 ac d6 e8 cb |.[.,K.JG.G......|
40-
000000e0 5f a9 09 93 91 d7 5d c9 c2 68 f8 cf 3c 7e 3b a3 |_.....]..h..<~;.|
41-
000000f0 db d8 d5 9e 0c bf 2a 2f 58 0a |......*/X.|
42-
000000fa
30+
00000040 3a 76 31 3a 6b 65 79 31 3a ea 7c 76 32 43 62 6f |:v1:key1:.|v2Cbo|
31+
00000050 44 02 02 8c b7 ca fe 95 a5 33 f6 a1 18 6c 3d 53 |D........3...l=S|
32+
00000060 e7 9c 51 ee 32 f6 e4 17 ea bb 11 d5 2f e2 40 00 |..Q.2......./.@.|
33+
00000070 ae cf d9 e7 ba 7f 68 18 d3 c1 10 10 93 43 35 bd |......h......C5.|
34+
00000080 24 dd 66 b4 f8 f9 82 77 4a d5 78 03 19 41 1e bc |$.f....wJ.x..A..|
35+
00000090 94 3f 17 41 ad cc 8c ba 9f 8f 8e 56 97 7e 96 fb |.?.A.......V.~..|
36+
000000a0 8f 2e 6a a5 bf 08 1f 0b c3 4b 2b 93 d1 ec f8 70 |..j......K+....p|
37+
000000b0 c1 e4 1d 1a d2 0d f8 74 3a a1 4f 3c e0 c9 6d 3f |.......t:.O<..m?|
38+
000000c0 de a3 f5 fd 76 aa 5e bc 27 d9 3c 6b 8f 54 97 45 |....v.^.'.<k.T.E|
39+
000000d0 31 25 ff 23 90 a4 2a f2 db 78 b1 3b ca 21 f3 6b |1%.#..*..x.;.!.k|
40+
000000e0 dd fb 8e 53 c6 23 0d 35 c8 0a |...S.#.5..|
41+
000000ea
4342
```
4443

4544
The etcd key should be prefixed with `k8s:enc:aescbc:v1:key1`, which indicates the `aescbc` provider was used to encrypt the data with the `key1` encryption key.
@@ -100,13 +99,13 @@ curl --head http://127.0.0.1:8080
10099
101100
```
102101
HTTP/1.1 200 OK
103-
Server: nginx/1.13.5
104-
Date: Mon, 02 Oct 2017 01:04:20 GMT
102+
Server: nginx/1.13.7
103+
Date: Mon, 18 Dec 2017 14:50:36 GMT
105104
Content-Type: text/html
106105
Content-Length: 612
107-
Last-Modified: Tue, 08 Aug 2017 15:25:00 GMT
106+
Last-Modified: Tue, 21 Nov 2017 14:28:04 GMT
108107
Connection: keep-alive
109-
ETag: "5989d7cc-264"
108+
ETag: "5a1437f4-264"
110109
Accept-Ranges: bytes
111110
```
112111

@@ -132,7 +131,7 @@ kubectl logs $POD_NAME
132131
> output
133132
134133
```
135-
127.0.0.1 - - [02/Oct/2017:01:04:20 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.54.0" "-"
134+
127.0.0.1 - - [18/Dec/2017:14:50:36 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.54.0" "-"
136135
```
137136

138137
### Exec
@@ -148,7 +147,7 @@ kubectl exec -ti $POD_NAME -- nginx -v
148147
> output
149148
150149
```
151-
nginx version: nginx/1.13.5
150+
nginx version: nginx/1.13.7
152151
```
153152

154153
## Services
@@ -195,13 +194,13 @@ curl -I http://${EXTERNAL_IP}:${NODE_PORT}
195194
196195
```
197196
HTTP/1.1 200 OK
198-
Server: nginx/1.13.5
199-
Date: Mon, 02 Oct 2017 01:06:11 GMT
197+
Server: nginx/1.13.7
198+
Date: Mon, 18 Dec 2017 14:52:09 GMT
200199
Content-Type: text/html
201200
Content-Length: 612
202-
Last-Modified: Tue, 08 Aug 2017 15:25:00 GMT
201+
Last-Modified: Tue, 21 Nov 2017 14:28:04 GMT
203202
Connection: keep-alive
204-
ETag: "5989d7cc-264"
203+
ETag: "5a1437f4-264"
205204
Accept-Ranges: bytes
206205
```
207206

0 commit comments

Comments
 (0)
Please sign in to comment.