Friday, March 01, 2019
setup a jupyter notebook on local k8s
same as running in docker, I can access it anytime, and keep don't need to worry about too much pip install
polluting the system:
Dockerfile:
from ubuntu:bionic
RUN apt-get update && apt-get install -y python3 python3-pip
RUN pip3 install jupyter pandas requests matplotlib
WORKDIR /data
CMD ["/usr/local/bin/jupyter", "notebook", "--ip=0.0.0.0", "--port=9000", "--allow-root"]
to persist data, docker is easy, just mount the local directory as volume, but on k8s it requires two objects: PersistentVolume and PersistentVolumeClaim, one to declare storage and one for requesting storage
kind: PersistentVolume
apiVersion: v1
metadata:
name: jupyter-data
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/local/data/jupyter-data"
--
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: jupyter-data-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
then in the pod config, add under .spec.volumes
:
spec:
volumes:
- name: jupyter-data-pv-storage
persistentVolumeClaim:
claimName: jupyter-data-pv-claim
and under .spec.containers
:
spec:
containers:
volumeMounts:
- mountPath: "/data"
name: jupyter-pv-storage
start the pod and service and done.
Wednesday, March 13, 2019
list images from a private docker registry:
$ curl registry-host:5000/v2/_catalog
$ curl registry-host:5000/v2/[image_name]/tags/list
quickly create a redis service:
$ kubectl create deployment redisdb --image=redis:latest
$ kubectl expose deployment redisdb --port=26379 --target-port=6379 --external-ip=192.168.33.20 --type=NodePort
don't feel like reading at all, now just reading Stream Processing with Apache Spark
but I'm waiting for Clojure: The Essential Reference
there's always new thing to learn about vim:
- Learn to speak vim — verbs, nouns, and modifiers!
c/foo
: change until next occurrence of ‘foo’vap
: visually select this paragraph
vim
when using fzf Files
, it based on current path, add this function to make it based on git
project root:
function! s:find_git_root()
return system('git rev-parse --show-toplevel 2> /dev/null')[:-2]
endfunction
command! ProjectFiles execute 'Files' s:find_git_root()
Tuesday, March 19, 2019
some links about python:
- Let’s build an Article Recommender using LDA
- Productivity tips for Jupyter (Python)
- Did You Know Pandas Can Do So Much?
- Keeping Pandas DataFrames clean when importing JSON
the last one uses Python with Context Managers, which is interesting
joined oreilly's istio online training, here's course materials:
- Java (Spring Boot, Vert.x and Microprofile) + Istio on Kubernetes/OpenShift
- burrsutter/scripts-istio: My bash shell scripts for easy demoing of bit.ly/istio-tutorial
Wednesday, March 27, 2019
convert .m3u8
stream to mp3:
$ ffmpeg -i url/to/file.m3u8 -c copy out.mkv
$ ffmpeg -i out.mkv -c:a libmp3lame out.mp3
Blog Archive
- Newer Entries
- 2019 April
- 2019 May
- 2019 July
- 2019 October
- 2019 November
- 2019 December
- 2020 August
- 2020 September
- 2020 October
- 2020 November
- 2020 December
- 2021 January
- 2021 February
- 2021 March
- 2021 April
- 2021 May
- 2021 June
- 2021 August
- 2021 September
- 2021 December
- 2022 March
- 2022 April
- 2022 May
- 2022 June
- 2022 July
- 2022 August
- 2022 September
- 2022 October
- 2022 November
- 2022 December
- 2023 January
- 2023 February
- 2023 March
- 2023 April
- 2023 July
- 2023 August
- 2023 September
- 2023 October
- 2023 November
- 2023 December
- 2024 January
- 2024 February
- 2024 March
- 2024 April
- 2024 May
- 2024 June
- 2024 August
- 2024 September
- 2024 October
- 2024 November
- Older Entries
- 2019 February
- 2019 January
- 2018 December
- 2018 November
- 2018 October
- 2018 September
- 2018 August
- 2018 July
- 2018 June
- 2018 May
- 2018 April
- 2018 March
- 2018 February
- 2018 January
- 2017 December
- 2017 November
- 2017 October
- 2017 September
- 2017 August
- 2017 July
- 2017 June
- 2017 May
- 2017 April
- 2017 March
- 2017 February
- 2017 January
- 2016 December
- 2016 November
- 2016 October
- 2016 September
- 2016 August
- 2016 July
- 2016 June
- 2016 May
- 2016 April
- 2016 March
- 2016 February
- 2016 January
- 2015 December
- 2015 November
- 2015 October
- 2015 September
- 2015 August
- 2015 July
- 2015 June
- 2015 May
- 2015 April
- 2015 March
- 2015 February
- 2015 January
- 2014 December
- 2014 November
- 2014 October
- 2014 September
- 2014 August
- 2014 March
- 2014 February
- 2014 January
- 2013 December
- 2013 October
- 2013 July
- 2013 June
- 2013 May
- 2013 March
- 2013 February
- 2013 January
- 2012 December
- 2012 November
- 2012 October
- 2012 September
- 2012 August