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

お家kubernetesにドメインでアクセスするまで

 お家kubernetesにドメインでアクセスするまで

■イベント
Kubernetes Meetup Novice
https://k8s-novice-jp.connpass.com/

■発表者
研究開発部 Architectグループ
加藤 慶彦

■研究開発部 採用情報
https://media.sansan-engineering.com/randd

SansanTech

April 11, 2024
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. 加藤慶彦 X: @discord_tech MLOps Engineer 慶應義塾⼤学⼤学院理⼯学研究科開放環境科学専攻博⼠後期課 程単位取得退学。 新卒で不動産系IT企業に⼊社し、Platform Engineerとして全社 基盤のKubernetes

    clusterの開発に携わる傍ら、実験基盤、実 ⾏基盤、運⽤基盤から成るMLOps基盤を構築するプロジェクト を⽴ち上げる。 2023年8⽉にSansanに⼊社。 現在はPlatformチームにて研究開発の実⾏基盤Circuitの開発に 従事。
  2. 構築が簡単になってきた 昔 - kubeadm - kubespray 今 - k3s -

    k0s - k0sctlを使った構築が簡単 お家Kubernetes
  3. Service Meshについて Gateway API (Kubernetes) Kubernetesに最近⼊った機能 挙動は他のネットワーク管理ソフト ウェアに任されている Istio +

    gateway APIもあり得る Istio 今のスタンダード Sidecarで実現される IstioのeBPF実装のCNIを使うと Sidecarlessもできる?
  4. 1. Ciliumの設定を変更する 2. IPPoolを作る 3. リーダーエレクションされる 4. L2 Announcementのリソースを作る 5.

    IPアドレスに対してリーダーのMACアドレスが登録される L2 Announcementの挙動 enable-l2-announcements: true kube-proxy-replacement: true k8s-client-qps: {QPS} k8s-client-burst: {BURST}
  5. 1. Ciliumの設定を変更する 2. IPPoolを作る 3. リーダーエレクションされる 4. L2 Announcementのリソースを作る 5.

    IPアドレスに対してリーダーの MACアドレスが登録される L2 Announcementの挙動 apiVersion: "cilium.io/v2alpha1" kind: CiliumLoadBalancerIPPool metadata: name: "blue-pool" spec: blocks: - cidr: "10.0.10.0/24" - cidr: "2004::0/64" - start: "20.0.20.100" stop: "20.0.20.200" - start: "1.2.3.4"
  6. 1. Ciliumの設定を変更する 2. IPPoolを作る 3. リーダーエレクションされる 4. L2 Announcementのリソースを作る 5.

    IPアドレスに対してリーダーのMACアドレスが登録される L2 Announcementの挙動 $ kubectl -n kube-system get lease NAME HOLDER AGE cilium-l2announce-default-deathstar worker-node 2d20h cilium-operator-resource-lock worker-node2-tPDVulKoRK 2d20h kube-controller-manager control-plane-node_9bd97f6c-cd0c-4565-8486-e718deb310e4 2d21h kube-scheduler control-plane-node_2c490643-dd95-4f73-8862-139afe771ffd 2d21h
  7. 1. Ciliumの設定を変更する 2. IPPoolを作る 3. リーダーエレクションされる 4. L2 Announcementのリソースを作る 5.

    IPアドレスに対してリーダーの MACアドレスが登録される L2 Announcementの挙動 apiVersion: "cilium.io/v2alpha1" kind: CiliumL2AnnouncementPolicy metadata: name: policy1 spec: serviceSelector: matchLabels: color: blue nodeSelector: matchExpressions: - key: node- role.kubernetes.io/control-plane operator: DoesNotExist interfaces: - ^eth[0-9]+ externalIPs: true loadBalancerIPs: true
  8. 1. Ciliumの設定を変更する 2. IPPoolを作る 3. リーダーエレクションされる 4. L2 Announcementのリソースを作る 5.

    IPアドレスに対してリーダーのMACアドレスが登録される L2 Announcementの挙動