mirror of
https://github.com/acedemand/kubernetes-essentials.git
synced 2021-08-24 18:29:57 +03:00
helm packaging
This commit is contained in:
@@ -10,4 +10,4 @@ spec:
|
|||||||
image: nginx
|
image: nginx
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
cpu: mukemmel
|
cpu: kotu
|
||||||
|
|||||||
26
02-deployments/rollingupdate/nginx-dpl.yaml
Normal file
26
02-deployments/rollingupdate/nginx-dpl.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx-test
|
||||||
|
spec:
|
||||||
|
replicas: 5
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
service: http-server
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
rollingUpdate:
|
||||||
|
maxSurge: 50%
|
||||||
|
maxUnavailable: 1
|
||||||
|
minReadySeconds: 5
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
service: http-server
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx
|
||||||
|
image: nginx:1.7.9
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
```bash
|
||||||
|
#cluster-info
|
||||||
|
gcloud container clusters describe meetup --project=inspired-bus-194216 --zone=us-central1-c --format="json" | grep service
|
||||||
|
gcloud container clusters describe meetup --project=inspired-bus-194216 --zone=us-central1-c --format="json" | grep Ip
|
||||||
|
```
|
||||||
|
|||||||
20
06-services/ingress/context/ingress-tls-nginx.yaml
Normal file
20
06-services/ingress/context/ingress-tls-nginx.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: web-ingress
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/ingress.class: nginx
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- http:
|
||||||
|
paths:
|
||||||
|
- path: /v2/*
|
||||||
|
backend:
|
||||||
|
serviceName: web-v2
|
||||||
|
servicePort: 8080
|
||||||
|
- path: /v1/*
|
||||||
|
backend:
|
||||||
|
serviceName: web-v1
|
||||||
|
servicePort: 8080
|
||||||
|
tls:
|
||||||
|
- secretName: web-tls
|
||||||
@@ -3,8 +3,6 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
creationTimestamp: null
|
creationTimestamp: null
|
||||||
labels:
|
labels:
|
||||||
internalVersion: 0.0.1
|
|
||||||
name: kuard
|
|
||||||
run: kuard
|
run: kuard
|
||||||
name: kuard
|
name: kuard
|
||||||
spec:
|
spec:
|
||||||
@@ -14,7 +12,6 @@ spec:
|
|||||||
targetPort: 8080
|
targetPort: 8080
|
||||||
selector:
|
selector:
|
||||||
internalVersion: 0.0.1
|
internalVersion: 0.0.1
|
||||||
name: kuard
|
|
||||||
run: kuard
|
run: kuard
|
||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
status:
|
status:
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
creationTimestamp: null
|
creationTimestamp: null
|
||||||
labels:
|
labels:
|
||||||
internalVersion: 0.0.1
|
|
||||||
name: kuard
|
|
||||||
run: kuard
|
run: kuard
|
||||||
name: kuard
|
name: kuard
|
||||||
spec:
|
spec:
|
||||||
@@ -14,7 +12,6 @@ spec:
|
|||||||
targetPort: 8080
|
targetPort: 8080
|
||||||
selector:
|
selector:
|
||||||
internalVersion: 0.0.1
|
internalVersion: 0.0.1
|
||||||
name: kuard
|
|
||||||
run: kuard
|
run: kuard
|
||||||
type: NodePort
|
type: NodePort
|
||||||
status:
|
status:
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
creationTimestamp: null
|
creationTimestamp: null
|
||||||
labels:
|
labels:
|
||||||
internalVersion: 0.0.1
|
|
||||||
name: kuard
|
|
||||||
run: kuard
|
run: kuard
|
||||||
name: kuard
|
name: kuard
|
||||||
spec:
|
spec:
|
||||||
@@ -14,8 +12,7 @@ spec:
|
|||||||
targetPort: 8080
|
targetPort: 8080
|
||||||
selector:
|
selector:
|
||||||
internalVersion: 0.0.1
|
internalVersion: 0.0.1
|
||||||
name: kuard
|
|
||||||
run: kuard
|
run: kuard
|
||||||
type: ClusterIP
|
type: NodePort
|
||||||
status:
|
status:
|
||||||
loadBalancer: {}
|
loadBalancer: {}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
storage: 10Gi
|
storage: 10Gi
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteOnce
|
- ReadWriteOnce
|
||||||
gcePersistnetDisk:
|
gcePersistentDisk:
|
||||||
pdName: meetup-disk
|
pdName: meetup-disk
|
||||||
fsType: ext4
|
fsType: ext4
|
||||||
|
|
||||||
|
|||||||
27
09-crd/01-crd.yaml
Normal file
27
09-crd/01-crd.yaml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
apiVersion: apiextensions.k8s.io/v1beta1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
# name must match the spec fields below, and be in the form: <plural>.<group>
|
||||||
|
name: crontabs.stable.example.com
|
||||||
|
spec:
|
||||||
|
# group name to use for REST API: /apis/<group>/<version>
|
||||||
|
group: stable.example.com
|
||||||
|
# list of versions supported by this CustomResourceDefinition
|
||||||
|
versions:
|
||||||
|
- name: v1
|
||||||
|
# Each version can be enabled/disabled by Served flag.
|
||||||
|
served: true
|
||||||
|
# One and only one version must be marked as the storage version.
|
||||||
|
storage: true
|
||||||
|
# either Namespaced or Cluster
|
||||||
|
scope: Namespaced
|
||||||
|
names:
|
||||||
|
# plural name to be used in the URL: /apis/<group>/<version>/<plural>
|
||||||
|
plural: crontabs
|
||||||
|
# singular name to be used as an alias on the CLI and for display
|
||||||
|
singular: crontab
|
||||||
|
# kind is normally the CamelCased singular type. Your resource manifests use this.
|
||||||
|
kind: CronTab
|
||||||
|
# shortNames allow shorter string to match your resource on the CLI
|
||||||
|
shortNames:
|
||||||
|
- ct
|
||||||
85
10-ks8-packaging/01-helm/01-installation/Readme.md
Normal file
85
10-ks8-packaging/01-helm/01-installation/Readme.md
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
#### Installation
|
||||||
|
```bash
|
||||||
|
kubectl create serviceaccount --namespace kube-system tiller
|
||||||
|
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
|
||||||
|
helm init --service-account tiller --upgrade
|
||||||
|
kubectl get deployment -n kube-system -o yaml tiller-deploy | grep serviceAccount
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Helm uninstall from cluster
|
||||||
|
```bash
|
||||||
|
helm reset
|
||||||
|
kubectl get pods -n kube-system
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Forget to create service account
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#https://github.com/fnproject/fn-helm/issues/21
|
||||||
|
helm init
|
||||||
|
helm list
|
||||||
|
kubectl create serviceaccount --namespace kube-system tiller
|
||||||
|
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
|
||||||
|
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
|
||||||
|
helm --help
|
||||||
|
helm list --help
|
||||||
|
helm list
|
||||||
|
helm list -a
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Stable Charts && Incubator Charts
|
||||||
|
```bash
|
||||||
|
helm search mysql
|
||||||
|
helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
|
||||||
|
helm search cassandra
|
||||||
|
curl -XGET https://kubernetes-charts-incubator.storage.googleapis.com/
|
||||||
|
```
|
||||||
|
|
||||||
|
open from Chrome https://console.cloud.google.com/storage/browser/kubernetes-charts-incubator </br>
|
||||||
|
|
||||||
|
```bash
|
||||||
|
helm install stable/nginx-ingress --name nginx-ing --namespace app
|
||||||
|
kubectl get all -n app
|
||||||
|
helm list
|
||||||
|
helm delete --help
|
||||||
|
helm delete nginx-ing --purge
|
||||||
|
```
|
||||||
|
|
||||||
|
### Managing dependencies
|
||||||
|
```bash
|
||||||
|
mkdir -p $HOME/dev/tools_data
|
||||||
|
cd ~/dev/tools_data
|
||||||
|
git clonehttps://github.com/helm/charts.git
|
||||||
|
cd charts/stable
|
||||||
|
cd sonarqube
|
||||||
|
cat requirements.yaml
|
||||||
|
mkdir charts/postgresql
|
||||||
|
cp -R ../postgresql charts/postgresql
|
||||||
|
helm install . --name sonarqube --namespace app -f values.yaml
|
||||||
|
helm list
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Helm Commands
|
||||||
|
```bash
|
||||||
|
helm status sonarqube
|
||||||
|
helm inspect .
|
||||||
|
helm inspect stable/mysql
|
||||||
|
```
|
||||||
|
change limits in values.yaml </br>
|
||||||
|
```yaml
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
helm upgrade sonarqube . -f values.yaml
|
||||||
|
helm history sonarqube
|
||||||
|
helm rollback --dry-run=true sonarqube 1
|
||||||
|
helm rollback sonarqube 1
|
||||||
|
kubectl get pods -n app
|
||||||
|
```
|
||||||
|
|
||||||
Reference in New Issue
Block a user