• Stars
    star
    104
  • Rank 330,604 (Top 7 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of kubernetes.

Network Node Manager

network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of kubernetes. By simply deploying and configuring network-node-manager, you can solve kubernetes network issues that cannot be resolved by kubernetes or resolved by the higher kubernetes Version. Below is a list of kubernetes's issues to be resolved by network-node-manager. network-node-manager is based on kubebuilder v2.3.1.

Deploy

network-node-manager now supports below CPU architectures.

  • amd64
  • arm64

Deploy network-node-manager through below command according to kube-proxy mode. After deploying network-node-manager, the "POD_CIDR_IPv4" environment variable must be set. And if you use IPv6 service, you must also set the "POD_CIDR_IPv6" environment variable.

iptables proxy mode 
$ kubectl apply -f https://raw.githubusercontent.com/kakao/network-node-manager/master/deploy/network-node-manager_iptables.yml
$ kubectl -n kube-system set env daemonset/network-node-manager POD_CIDR_IPV4=[IPv4 POD CIDR]
$ kubectl -n kube-system set env daemonset/network-node-manager POD_CIDR_IPV6=[IPv6 POD CIDR]

IPVS proxy mode
$ kubectl apply -f https://raw.githubusercontent.com/kakao/network-node-manager/master/deploy/network-node-manager_ipvs.yml
$ kubectl -n kube-system set env daemonset/network-node-manager POD_CIDR_IPV4=[IPv4 POD CIDR]
$ kubectl -n kube-system set env daemonset/network-node-manager POD_CIDR_IPV6=[IPv6 POD CIDR]

Examples are below

Example 1
$ kubectl apply -f https://raw.githubusercontent.com/kakao/network-node-manager/master/deploy/network-node-manager_iptables.yml
$ kubectl -n kube-system set env daemonset/network-node-manager POD_CIDR_IPV4="10.244.0.0/16"

Example 2
$ kubectl apply -f https://raw.githubusercontent.com/kakao/network-node-manager/master/deploy/network-node-manager_ipvs.yml
$ kubectl -n kube-system set env daemonset/network-node-manager POD_CIDR_IPV4="192.167.0.0/16"
$ kubectl -n kube-system set env daemonset/network-node-manager POD_CIDR_IPV6="fdbb::0/64"

Configuration

The following are configurations related to rules managed by network-node-manager to solve the network issue of kubernetes. Please check the configuration and its related Rule. Network-node-manager is configured through environment variable configuration. When the environment variable is changed, the rule is dynamically set as network-node-manager is redeployed.

Enable Drop Invalid Packet Rule in INPUT chain

On
$ kubectl -n kube-system set env daemonset/network-node-manager RULE_DROP_INVALID_INPUT_ENABLE=true

Off
$ kubectl -n kube-system set env daemonset/network-node-manager RULE_DROP_INVALID_INPUT_ENABLE=false

Enable External-IP to Cluster-IP DNAT Rule

On
$ kubectl -n kube-system set env daemonset/network-node-manager RULE_EXTERNAL_CLUSTER_ENABLE=true

Off
$ kubectl -n kube-system set env daemonset/network-node-manager RULE_EXTERNAL_CLUSTER_ENABLE=false

How it works?

network-node-manager Architecture

network-node-manager runs on all kubernetes cluster nodes in host network namespace with network privileges and manage the node network configuration. network-node-manager watches the kubernetes object through kubenetes API server like a general kubernetes controller and manage the node network configuration. Now network-node-manager only watches service object.

License

This software is licensed under the Apache 2 license, quoted below.

Copyright 2020 Kakao Corp. http://www.kakaocorp.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

More Repositories

1

khaiii

Kakao Hangul Analyzer III
Python
1,333
star
2

buffalo

TOROS Buffalo: A fast and scalable production-ready open source project for recommender systems
Python
576
star
3

n2

TOROS N2 - lightweight approximate Nearest Neighbor library which runs fast even with large datasets
Jupyter Notebook
569
star
4

s2graph

This code base is retained for historical interest only, please visit Apache Incubator Repo for latest one
Scala
250
star
5

recoteam

์นด์นด์˜ค ์ถ”์ฒœํŒ€ ๊ณต๊ฐœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค.
Jupyter Notebook
247
star
6

DaumEditor

[DEPRECATED] Open Source Online WYSIWYG HTML Editor
JavaScript
218
star
7

kakao_flutter_sdk

Flutter SDK for Kakao Open API
Dart
186
star
8

web2app

tiny javascript library to launch a mobile app. from a webpage
JavaScript
156
star
9

awesome-tech-newletters

๊ธฐ์ˆ  ๋‰ด์Šค๋ ˆํ„ฐ ๋ชจ์Œ
134
star
10

hbase-region-inspector

A visual dashboard of HBase region statistics
Clojure
106
star
11

kafka-connect-web

Web tool for operating kafka connect https://hub.docker.com/r/officialkakao/kafka-connect-web
Vue
90
star
12

detek

Extensible problem-detecting CLI tool for reliable Kubernetes cluster operations and rapid problem detections.
Go
89
star
13

cuesheet

A framework for writing Spark 2.x applications in a pretty way
Scala
84
star
14

credit-card-sms-parser

[DEPRECATED] ์‹ ์šฉ์นด๋“œ ๊ฒฐ์ œ ๋ฌธ์ž ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ์‘์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ๋‹ด์•„์ค๋‹ˆ๋‹ค.
Ruby
73
star
15

d2hub

Ruby
62
star
16

adt

Almighty Data Transmitter
Java
57
star
17

hbase-tools

Collection of command-line tools for HBase
Java
56
star
18

kafka-sink-connector

Kafka Connect connector that reads JSON data from Apache Kafka and send JSON record to Another Kafka topic.
Java
46
star
19

java_thread_dump_analyzer

Java Thread Dump Analyzer
JavaScript
41
star
20

mango

Core utility library & data connectors designed for simpler usage in Scala
Scala
41
star
21

elasticsearch-shard-suggester

Python
36
star
22

varlog

Scalable distributed log storage for strong consistency, total order, and high availability
Go
35
star
23

hbase-packet-inspector

Analyzes network traffic of HBase RegionServers
Clojure
35
star
24

cmux

A set of commands for managing CDH clusters using Cloudera Manager REST API.
Ruby
34
star
25

duct-lacinia

Clojure
33
star
26

DAFT

Code for the NeurIPS 2019 paper: "Learning Dynamics of Attention: Human Prior for Interpretable Machine Reasoning"
Python
32
star
27

cite

Cite: Kubernetes CI/CD
Go
22
star
28

kakao-ios-sdk

Swift
22
star
29

olive-cli

20
star
30

kakao-recoteam-recsys-2022-challenge

Solution of Kakao Recoteam to Recsys Challenge 2022
Jupyter Notebook
19
star
31

MRTE-Collector

MRTE(MySQL Realtime Traffic Emulator) Collector
Go
19
star
32

olive-ui

Angular UI Component based on OLIVE Platform.
HTML
16
star
33

MRTE-Player

MRTE(MySQL Realtime Traffic Emulator) Player
Java
12
star
34

kfield

kakao's corner stone of openstack cloud devops
HTML
10
star
35

legal-notice

[DEPRECATED]๋ณธ ์ €์žฅ์†Œ๋Š” ๋”์ด์ƒ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Pull Request ๋ฐ Issue๋ฅผ ๋ณด๋‚ด์…”๋„ ๋ฐ˜์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
JavaScript
10
star
36

pycon2016apac-gawibawibo

ํŒŒ์ด์ฝ˜ 2016 APAC - ๊ฐ€์œ„๋ฐ”์œ„๋ณด ๊ฒŒ์ž„ ์ง„ํ–‰ ์„œ๋ฒ„ & ์ฐธ๊ฐ€์ž ์†Œ์Šค
Python
9
star
37

s2graph-admin

Web-based Admin Tool for Apache S2Graph
JavaScript
7
star
38

TC

Python
4
star
39

MongoQueryLogger

MongoDB Query Logger by Pattern
Go
3
star
40

cite-build

cite buildbot
Python
3
star
41

MRTE2

MySQL Real Traffic Emulator (v2)
Go
2
star
42

kakao-partner-ios-sdk

Swift
2
star
43

sample-app-for-android

olive platform sample project๋ฅผ ์œ„ํ•œ android app
Python
2
star
44

python-ssdb

SSDB Python Client
Cython
1
star
45

docker_auth

Go
1
star
46

d2hub-playbook

Shell
1
star
47

kakao-ios-sdk-rx

Swift
1
star
48

d2hub-registry

Go
1
star
49

kakao.github.io

SCSS
1
star