Upgrade to Pro — share decks privately, control downloads, hide ads and more …

kindで作るローカルk8s開発環境

Kenta Shinohara
January 31, 2020
25

 kindで作るローカルk8s開発環境

Kenta Shinohara

January 31, 2020
Tweet

Transcript

  1. kindͰ࡞ΔϩʔΧϧk8s։ൃ؀ڥ
    2020/1 @sinohara

    View Slide

  2. TL;DR
    • kubernetes͸ॳֶऀ΁ͷෑډ͕૬มΘΒͣߴ͍
    • kind͸docker͕ಈ͘؀ڥ͑͋͞Ε͹kubernetes
    ؀ڥ͕࡞ΕΔͷͰ͓קΊ

    View Slide

  3. Kenta Shinohara @ NSݚN੍PωࣜDP
    • Ϋϥ΢υωΠςΟϒNFVج൫ͷݚڀɾ։ൃ
    • 1/31 NTT Tech Conference #4ͰLT͠·ͨ͠
    Copyright©2020 NTT Corp. All Rights Reserved. NTT Tech Conf#4 @2020/1/31 1

    View Slide

  4. ຊ೔ͷ͓୊ɿ
    ϩʔΧϧk8s؀ڥ
    • k8s৮ͬͨ͜ͱ͋Δਓʁ
    • ͓ࢼ͢͠Δʹ΋k8s؀ڥͬͯ
    ΍ͬͺΓෑډ͕ߴ͍

    View Slide

  5. ϚωʔδυαʔϏεʁ
    • ߏஙʹ20෼͔͔Δ
    • ߴ͍($72/݄~)
    • 5෼͘Β͍Ͱߏஙग़དྷΔ
    • ߴ͍($24/݄)

    View Slide

  6. ϩʔΧϧ k8sʁ • minikube
    • hypervisorϕʔε
    • Virtual box, hyperkit, parallels, vmware,
    etc…
    • 2vCPU / 2GB mem
    • γϯάϧϊʔυΫϥελ
    • master/workerಉډߏ੒
    • ΋͏গͪ͠ΌΜͱͨ͠؀ڥ͕ཉ͍͠ɾɾ

    View Slide

  7. kind : kubernetes in docker
    • dockerίϯςφ্Ͱmulti-node cluster؀ڥΛ
    ࡞Δߏஙπʔϧ

    View Slide

  8. how to use kind
    kind-config.yml

    View Slide

  9. how to use kind

    View Slide

  10. kind architecure
    Server
    docker docker docker
    Kube-apiserver
    Kube-controller
    Kube-scheduler
    etcd
    kube-proxy
    coredns
    Image: kindest/node:v1.17.0
    kind.cluster: test
    kind.role: control-plane
    Image: kindest/node:v1.17.0
    kind.cluster: test
    kind.role: worker
    Image: kindest/node:v1.17.0
    kind.cluster: test
    kind.role: worker
    Kubelet
    kube-proxy
    Kubelet Kubelet
    kube-proxy
    cni: kindnet
    cni: kindnet cni: kindnet
    EPDLFS CSJEHF

    ίϯςφͷJQSPVUFJQUBCMFTΛ؅ཧ

    View Slide

  11. ࢀߟɿπʔϧൺֱ
    • kind
    • minikube virtualbox
    • minikube hyperkit
    kind
    Minikube
    virtualbox
    Minikube
    hyperkit
    Start-up time
    [sec]
    82 133.65 141.14
    CPU% 25 30 20
    Memory [MiB] 622 2071
    * wired down pages
    2615
    node
    Master x1
    worker x2
    Single node Single node
    environment: MacBook Pro 2017, CPU: Intel Core i5 2.3GHz, Memory: 16GB

    View Slide

  12. ࢀߟɿkindnet-cni

    View Slide

  13. kindΛ࢖͑͹ɾɾ
    • docker؀ڥ͑͋͞Ε͹k8s؀ڥΛ
    ϩʔΧϧͰ࡞ΕΔʂ
    • minikubeΑΓಈ࡞͕଎ͯܰ͘ྔʂ
    • multi-node؀ڥͰ༡΂Δʂ

    View Slide

  14. View Slide

  15. kind architecure ;ͨͨͼ
    Server
    docker docker docker
    Kube-apiserver
    Kube-controller
    Kube-scheduler
    etcd
    kube-proxy
    coredns
    Image: kindest/node:v1.17.0
    kind.cluster: test
    kind.role: control-plane
    Image: kindest/node:v1.17.0
    kind.cluster: test
    kind.role: worker
    Image: kindest/node:v1.17.0
    kind.cluster: test
    kind.role: worker
    Kubelet
    kube-proxy
    Kubelet Kubelet
    kube-proxy
    cni: kindnet
    cni: kindnet cni: kindnet
    EPDLFS CSJEHF

    frontend Pod frontend Pod
    frontend Pod
    Redis-master Pod
    Redis-slave Pod Redis-slave Pod
    github/kubernetes/examples/guestbook

    View Slide

  16. docker ps
    Kubernetes resource
    ϗετ͔Β1PEʹ౸ୡ͢Δܦ࿏͕ແ͍

    View Slide

  17. kubefwd
    • https://github.com/txn2/kubefwd
    • kubectl port-forwardΛ·ͱΊ࣮ͯߦͯ͘͠ΕΔπʔϧ

    View Slide

  18. View Slide

  19. View Slide

  20. Takeaways
    • kind+kubefwdΛ࢖ͬͨk8s։ൃ؀ڥͷ঺հ
    • ҎԼͷ੍໿͸͋Δ͚Ͳେମͷέʔε͸OK?
    • kubectl port-forward͸UDPඇରԠ
    • localͰϏϧυͨ͠ίϯςφΠϝʔδ͸
    `kind load`ίϚϯυͰk8sίϯςφʹΠϝʔδసૹ͢Δඞཁ͋Γ

    View Slide