Necoとはいったい何なのか。
- [ブログ] cybozu.com の新データセンター「Neco」が稼働開始
- [ブログ] Neco プロジェクト完了したので人材募集します!
- [英語ブログ] Project Neco: Building Cloud Native On-Premise Data Centers
- [スライド] Monolith to CloudNative (CNDT2020)
- [スライド] Production-Ready Kubernetesに至るまでの3年間とこれから
- [スライド] インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは (Cybozu Meetup #18 SRE/Neco)
- [ブログ] Necoはツラくないクラウド基盤を作ってます、という話をしてきました
- [スライド] ツラくないクラウド運用環境を作る (オープンデベロッパーズカンファレンス2018)
- [スライド] プライベートクラウドのサービス運用環境をK8sで改善する話
Kubernetesクラスタの構築・運用を自動化するためのツールとしてCKEを開発しました。
- [OSS] https://github.com/cybozu-go/cke
- [スライド] Kubernetesクラスタの自動管理システムのつくりかた (CloudNative Days Tokyo 2019)
- [英語ブログ] Automating Lifecycle Management of Kubernetes Clusters
- [ブログ] CKEがKubernetes Conformance Softwareに認定されました
- [スライド] CKE で始める!はじめての Kubernetes クラスタ・インプレースアップグレード (Maneki & Neco Meetup)
- [ブログ] Neco の宣言的なサーバー全台再起動の仕組み
- [英語ブログ] Rebooting a LOT of Kubernetes nodes in a declarative way
- [スライド] オンプレ Kubernetes クラスタの全サーバーを宣言的に再起動する方法 (Kubernetes Meetup Tokyo #38)
データセンターの大量のサーバをネットワークブートするための仕組みとしてsabakanを開発しました。
Kubernetesに適したデータセンターネットワークを構築しました。
- [ブログ] Necoのネットワーク - アーキテクチャと設計編
- [ブログ] Neco のネットワーク - 実装編
- [英語ブログ] Modular, Pure Layer 3 Network for Kubernetes: The Design
- [英語ブログ] Modular, Pure Layer 3 Network for Kubernetes: The Implementation
Kubernetes用のネットワークプラグインCoilを開発しました。
- [OSS] https://github.com/cybozu-go/coil
- v1
- v2
- [ブログ] Kubernetes 用 CNI プラグイン Coil v2 の紹介
- [英語ブログ] Delegating CNI requests to a gRPC server for better tracing
- [英語ブログ] Implementing highly-available NAT service on Kubernetes
- [英語ブログ] Introducing Coil v2, a Kubernetes network plugin to build Egress gateway
- [スライド] 拡張性の高い CNI プラグイン Coil v2 の紹介 (Kubernetes Meetup #35)
ロードバランサとしてMetalLBとContourを導入しています。 また、Contourをcert-managerやexternal-dnsと連携させるための仕組みとしてcontour-plusを開発しました。
- [ブログ] KubernetesロードバランサーのMetalLBを導入した話(Necoプロジェクト体験入部)
- [OSS] https://github.com/cybozu-go/contour-plus
データセンターネットワークやCoilに必要なBGPの情報です。
- [ブログ] データセンター内で使う BGP の基礎知識
- [ブログ] ルーティングソフトウェア BIRD の使いかた
- [英語ブログ] Getting Started with BIRD Routing Software
- [英語ブログ] A Brief Introduction to BGP for Software Engineers
Kubernetesでローカルストレージを利用するための仕組みとしてTopoLVMを開発しました。
- [OSS] https://github.com/topolvm/topolvm
- [ブログ] Kubernetesでローカルストレージを有効活用しよう
- [英語ブログ] Introducing a New Local Storage for Kubernetes: TopoLVM
- [スライド] Capacity-aware Dynamic Volume Provisioning For LVM Local Storage (KubeCon EU 2020)
- [スライド] Necoのストレージ TopoLVMで何を実現するのか (Maneki & Neco Meetup)
- [スライド] Kubernetes向けストレージプラグインTopoLVMの紹介 / TopoLVM intro (サーバーサイドエンジニアオールスターズ in 関西!)
- [スライド] Container Storage Interface のすべて (KubeFest Tokyo 2020)
- [スライド] TopoLVMをRancherで動かしてみた話 (Rancher Meetup Osaka #11)
また、ストレージの使用容量に応じてPVCを自動でリサイズするpvc-autoresizerを開発しました。
Rook/Cephにかなり力を入れています。
- [ブログ] 分散ストレージソフトウェアCephとは
- [ブログ] Rookのメンテナに就任しました: これまでとこれからの取り組み
- [ブログ] ストレージオーケストレーターRookへのサイボウズのコミット方針
- [ブログ] 分散ストレージCephのオーケストレータRookのデータ破壊バグを修正しました
- [ブログ] サイボウズの新しいインフラ基盤を支えるストレージの本番適用に向けた取り組み
- [英語ブログ] Production-grade Deployment of PVC-based Rook/Ceph Cluster
- [ブログ] ストレージデバイスの暗号化に用いる暗号スイート間の性能比較
- [スライド] Optimizing Storage Assignment via Pod Scheduling Under Disturbance Factors (KubeCon NA 2020)
- [スライド] KubernetesでCephクラスタ用のストレージをどう管理するか 分割と配置の最適化への取り組み (CloudNative Days Tokyo 2020)
- [スライド] Rook/Ceph OSD on PVC in practice (Japan Rook Meetup #1)
- [スライド] Rook/Ceph upstream最新状況 (Japan Rook Meetup #2)
- [スライド] Rook/Ceph upstream最新状況 (Japan Rook Meetup #3)
- [スライド] Rook/Ceph upstream最新状況 (Japan Rook Meetup #4)
- [スライド] プロダクション向けRook/Cephクラスタ構築への道 (Japan Rook Meetup #5)
- [スライド] CNCF公式プロジェクトRookのメンテナになった話 〜これまでとこれから〜 (Open Developers Conference 2020 Online)
- [スライド] アプリのコンテナ化と排他制御 ~ データ 破壊 だ ヨ 全員集合 (Kubernetes Meetup Tokyo #36)
- [ブログ] KubernetesにおけるownerReferenceの誤用にご用心
- [スライド] Rook: Intro and Ceph Deep Dive (KubeCon EU 2021)
- [スライド] Kube Con EU 2021 recap ~ Rook Intro & Ceph Deep Dive (Kubernetes Meetup Tokyo #41)
データセンターの継続的デリバリーを実現するためにnecoという仕組みを構築しています。
- [OSS] https://github.com/cybozu-go/neco
- [スライド] 物理データセンターでも NoOps (NoOps Meetup Tokyo #6)
- [スライド] NoOps を目指して Kubernetes ネイティブな物理データセンターを作る (CloudNative Days Fukuoka 2019)
Kubernetes上のアプリケーションの継続的デリバリーには、ArgoCDを利用しています。
- [ブログ] Argo CDによる継続的デリバリーのベストプラクティスとその実装
- [ブログ] テナントがArgoCD Applicationを任意に作れるようにする
- [英語ブログ] Production-grade delivery workflow using Argo CD
- [OSS] https://github.com/cybozu-go/neco-apps
Kubernetes上でGitHub Actionsのself-hosted runnerを実現するためのコントローラを開発しています。
MySQLオペレータとしてMOCOを開発しています。
- [OSS] https://github.com/cybozu-go/moco
- [ブログ] MOCO - Kubernetes 用 MySQL クラスタ運用ソフトウェア
- [英語ブログ] Introducing MOCO, a modern MySQL operator on Kubernetes
- [スライド] オンプレKubernetesでMySQLクラスタの運用を自動化するためにOperatorを自作している話 (CNDO2021)
モニタリングにはVictoriaMetricsとGrafanaを導入しています。
- [ブログ] VictoriaMetrics と Grafana による Kubernetes クラスタのモニタリング
- [英語ブログ] Multi-tenancy monitoring system for Kubernetes cluster using VictoriaMetrics and operators
1つのKubernetesクラスタを複数チームが共有する仕組みを開発しています。
- [ブログ] 安全なKubernetesクラスタのつくりかた 〜ポリシー編〜
- [スライド] Kuebernetesクラスタのマルチテナンシーベストプラクティス (KubeFest Tokyo 2020)
- [OSS] Accurate
- [OSS] Pod Security Admission
OSSのコンテナは自前でビルドして利用しています。
- [ブログ] コンテナレジストリの可用性を高める取り組み
- [英語ブログ] Tolerating failures in container image registries
- [OSS] https://github.com/cybozu/neco-containers
- [OSS] https://github.com/cybozu/ubuntu-base
仮想データセンター構築ツールとしてplacematを開発し、本番環境そっくりな仮想環境上で毎日テストを実施しています。
- [ブログ] データセンター仮想化ツール Placemat v2の紹介
- [英語ブログ] Placemat: Powerful Data Center Virtualization Tool
- [OSS] https://github.com/cybozu-go/placemat
- [ブログ] Test Everything: データセンター仮想化と自動テストの取り組み
- [ブログ] 分散システムの耐障害性テストの取り組み
- [ブログ] Flaky Testとの戦い
いろいろなツールの紹介です。
- [OSS] https://github.com/cybozu-go/etcdpasswd
- [ブログ] 分散ユーザー管理システム「etcdpasswd」の紹介
- [ブログ] Go言語向けFailure Injectionツール: gofail
- [ブログ] お手軽Kubernetesクラスタ作成ツール "kind"の紹介
- [ブログ] TeleportでKubernetesクラスタへのユーザーアクセスを管理する
- [スライド] Kubebuilder / controller-runtime 入門 with v2 (Kubernetes Meetup Tokyo #23)
OSS活動について。
- [ブログ] OSSへの貢献ノウハウ
- [ブログ] OSSへの貢献ノウハウ: ユーザサポート編
- [スライド] OSSへの貢献ノウハウ 〜LinuxカーネルからRookまで〜 (Maneki & Neco Meetup)
- [ブログ] Kubernetesへの機能追加にかかわった話と、そこから得た知見
- [スライド] Kubernetes と オープンソース (KubeFest Tokyo 2020)
- Neco プロジェクトのスキルチェックシート
- [スライド] Neco プロジェクトの歩き方 (Maneki & Neco Meetup)
- [スライド] Necoを支えるチームビルディング (Maneki & Neco Meetup)
- [スライド] サイボウズを支える技術 ~インフラ刷新プロジェクトNecoを中心に紹介~ (サイボウズ技術説明会 for student!)
- [ブログ] KubeCon + CloudNativeCon Europe 2020 に登壇します
- [ブログ] Maneki & Neco ミートアップの資料を公開します
- [ブログ] Folding@homeを通じてCOVID-19治療薬の発見に貢献します
- [ブログ] サイボウズサマーインターン2020 報告 〜 OSSへの貢献を通して学ぶKubernetes基盤開発
- [ブログ] 2022年新卒採用 エキスパートエンジニア職のご紹介
- [スライド] クラウドネイティブなチームづくり (Kubernetes Invitational Meetup Tokyo #4)
- [スライド] KubeCon+CNConに見るetcdの未来 (CloudNative Meetup Tokyo #6)
- https://github.com/argoproj/argo-cd
- https://github.com/ceph/ceph
- https://github.com/container-storage-interface/spec
- https://github.com/containerd/containerd
- https://github.com/containernetworking/cni
- https://github.com/containernetworking/plugins
- https://github.com/coredns/coredns
- https://github.com/distribution/distribution
- https://github.com/elastic/cloud-on-k8s
- https://github.com/etcd-io/etcd
- https://github.com/fluent/fluent-bit
- https://github.com/golang/go
- https://github.com/grafana/grafana
- https://github.com/grafana/loki
- https://github.com/gravitational/teleport
- https://github.com/grpc/grpc-go
- https://github.com/hashicorp/consul
- https://github.com/hashicorp/serf
- https://github.com/hashicorp/vault
- https://github.com/integr8ly/grafana-operator
- https://github.com/jetstack/cert-manager
- https://github.com/kubernetes-csi/csi-test
- https://github.com/kubernetes-csi/external-attacher
- https://github.com/kubernetes-csi/external-provisioner
- https://github.com/kubernetes-csi/external-resizer
- https://github.com/kubernetes-csi/livenessprobe
- https://github.com/kubernetes-csi/node-driver-registrar
- https://github.com/kubernetes-sigs/controller-runtime
- https://github.com/kubernetes-sigs/controller-tools
- https://github.com/kubernetes-sigs/cri-tools
- https://github.com/kubernetes-sigs/external-dns
- https://github.com/kubernetes-sigs/kind
- https://github.com/kubernetes-sigs/kubebuilder
- https://github.com/kubernetes-sigs/prometheus-adapter
- https://github.com/kubernetes/client-go
- https://github.com/kubernetes/kube-state-metrics
- https://github.com/kubernetes/kubernetes
- https://github.com/memcached/memcached
- https://github.com/metallb/metallb
- https://github.com/NLnetLabs/unbound
- https://github.com/projectcalico/calico
- https://github.com/projectcontour/contour
- https://github.com/prometheus/alertmanager
- https://github.com/prometheus/memcached_exporter
- https://github.com/prometheus/node_exporter
- https://github.com/prometheus/pushgateway
- https://github.com/rook/rook
- https://github.com/squid-cache/squid
- https://github.com/stern/stern
- https://github.com/VictoriaMetrics/operator
- https://github.com/VictoriaMetrics/VictoriaMetrics
- https://github.com/vmware-tanzu/sonobuoy
- https://github.com/zalando-incubator/kube-metrics-adapter
- https://kinvolk.io/flatcar-container-linux/
- https://ubuntu.com