Game of Pods - Tyro
Game of Pods - Tyro
1
2
3
4
kubectl config set-context --current --cluster=kubernetes --namespace=development --user=drogo
kubectl config use-context developer --cluster=kubernetes --namespace=development --user=drogo
kubectl config current-context
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
cat ~/.kube/config
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0t...VkU2bVFFS2x0cHliUVVFZTRncmY2OGVUbz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
server: https://172.17.0.61:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
namespace: development
user: drogo
name: developer
- context:
cluster: kubernetes
namespace: development
user: drogo
name: development
- context:
cluster: kubernetes
namespace: development
user: drogo
name: kubernetes-admin@kubernetes
current-context: developer
kind: Config
preferences: {}
users:
- name: drogo
user:
client-certificate: /root/drogo.crt
client-key: /root/drogo.key
- name: kubernetes-admin
user:
client-certificate-data: LS0tLS...QgQ0VSVElGSUNBVEUtLS0tLQo=
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNS...hVN25LN0xNUkUvRGNPNFJla0VGZEh6SkhVUjB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
for i in $(ls *.yaml); do echo filename: $i;echo "---" ;cat $i; done
filename: pod.yaml
---
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
namespace: development
labels:
run: jekyll
name: jekyll
spec:
volumes:
- name: site
persistentVolumeClaim:
claimName: jekyll-site
initContainers:
- name: copy-jekyll-site
image: kodekloud/jekyll
command: [ "jekyll", "new", "/site" ]
volumeMounts:
- name: site
mountPath: "/site"
containers:
- image: kodekloud/jekyll-serve
name: jekyll
resources: {}
volumeMounts:
- name: site
mountPath: "/site"
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
filename: pvc.yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jekyll-site
namespace: development
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
filename: pv.yaml
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: jekyll-site
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 1Gi
hostPath:
path: /site
type: ""
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
filename: rolebinginf.yaml
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
creationTimestamp: null
name: developer-rolebinding
namespace: development
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: developer-role
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: drogo
filename: role.yaml
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
creationTimestamp: null
name: developer-role
namespace: development
rules:
- apiGroups:
- ""
resources:
- services
- persistentvolumeclaims
- pods
verbs:
- '*'
filename: svc.yaml
---
apiVersion: v1
kind: Service
metadata:
labels:
run: jekyll
name: jekyll
namespace: development
spec:
ports:
- nodePort: 30097
port: 8080
protocol: TCP
targetPort: 4000
selector:
run: jekyll
type: NodePort
This post is licensed under CC BY 4.0 by the author.
