Kubernetes
Orquestadores para las cuatro estaciones
@javierprovecho @canonale
Agenda
pod
volume
container
container
label1: key1=value1
label2: key2=value2
ports
tcp/8080 -
udp/53 -
env vars
env vars
apiVersion: v1�kind: Pod�metadata:� name: explorer�spec:� containers:� - name: explorer� image: my-image� args: ["-port=8080"]� ports:� - containerPort: 8080� protocol: TCP� volumeMounts:� - mountPath: "/mount/test-volume"� name: test-volume
env:� - name: "SOME_ENV_VAR"� name: "{\"some value\"}"� volumes:� - name: test-volume� emptyDir: {}
2. Replicación
deployment
pod spec
label1: key1=value1
label2: key2=value2
2. Replicación
apiVersion: extensions/v1beta1�kind: Deployment�metadata:� name: deployment�spec:� replicas: 1� template:� metadata:� labels:� app: redis� spec:� containers:� - name: redis� image: redis� volumeMounts:� - name: vmfs-vmdk-storage� mountPath: /data/� volumes:� - name: vmfs-vmdk-storage� vsphereVolume:� volumePath: "[Datastore] volumes/testdir"� fsType: ext4
3. Exposición
service
label1: key1=value1
label2: key2=value2
ports
tcp/8080 -
udp/53 -
3. Exposición
apiVersion: v1�kind: Service�metadata:� name: openshift-service�spec:� ports:� - port: 9042� targetPort: 9042� selector:� name: openshift
4. Volúmenes
apiVersion: v1�kind: Secret�metadata:� name: conf-data�type: Opaque �data:� key: Y3lsaWNvbiB2YWxsZXk=
---
apiVersion: v1�kind: Pod�metadata:� name: explorer�spec:� containers:� - name: explorer� image: my-image� volumeMounts:� - mountPath: "/mount/test-volume"� name: conf� volumes:� - name: conf� secret:
secretName: mySecret
5. Programación
5. Programación
apiVersion: extensions/v1beta1�kind: ThirdPartyResource�metadata:� name: cron-tab.stable.example.com�description: "A specification of a Pod to run on a cron style schedule"�versions:�- name: v1
---
apiVersion: "stable.example.com/v1"�kind: CronTab�metadata:� name: my-new-cron-object�cronSpec: "* * * * /5"�image: my-awesome-cron-image