{"id":21945080,"url":"https://github.com/gurkengewuerz/kubealived","last_synced_at":"2026-04-16T11:35:12.296Z","repository":{"id":143577456,"uuid":"445607542","full_name":"Gurkengewuerz/kubealived","owner":"Gurkengewuerz","description":"A Docker image and Kubernetes manifests for Keepalived","archived":false,"fork":false,"pushed_at":"2022-01-07T19:21:30.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-22T16:15:55.817Z","etag":null,"topics":["daemonset","docker","keepalived","kubernetes"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/repository/docker/gurken2108/kubealived","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gurkengewuerz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-07T17:52:44.000Z","updated_at":"2022-01-07T19:21:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"8174e85a-aa78-4e06-82ec-118ebd42cd33","html_url":"https://github.com/Gurkengewuerz/kubealived","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Gurkengewuerz/kubealived","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gurkengewuerz%2Fkubealived","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gurkengewuerz%2Fkubealived/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gurkengewuerz%2Fkubealived/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gurkengewuerz%2Fkubealived/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gurkengewuerz","download_url":"https://codeload.github.com/Gurkengewuerz/kubealived/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gurkengewuerz%2Fkubealived/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31884161,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T09:23:21.276Z","status":"ssl_error","status_checked_at":"2026-04-16T09:23:15.028Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["daemonset","docker","keepalived","kubernetes"],"created_at":"2024-11-29T04:17:43.842Z","updated_at":"2026-04-16T11:35:12.281Z","avatar_url":"https://github.com/Gurkengewuerz.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kubealived\n\n## Disclaimer\n\nThis repository is highly inspired by [openvnf/kubealived](https://github.com/openvnf/kubealived/) so does this `README.md`. [openvnf](https://github.com/openvnf) described `kubealived` perfectly. I reworked and updated everything to the newest version. This version is beside of `linux/amd64` now also available for `linux/arm64` and `linux/arm/v7` on [docker.io](https://hub.docker.com/r/gurken2108/kubealived).\n\n\n## About\n\nA [Docker] image and [Kubernetes] manifests for providing Kubernetes cluster\nAPI high availability with use of [Keepalived]. The solution assigns a\nKubernetes master node a specified IP address, and if the node is down the\naddress automatically moves to another master node.\n\n## Usage\n\nA Keepalived process should run on all the **master** nodes of a Kubernetes cluster\nthefore [DaemonSet] is used. Keepalived assigns a specified IP address to a\nspecified network interface. You should set a password `AUTH_PASS` for internal usage, however it is not required. \n\nThe default config compiled in the container is using multicast. If you are using i.e. Hetzner Cloud you must set a custom config even if you have a private network attached. This is because Hetzner Cloud is using Layer 3 Switches.  \nIf you are using for example Linode, Hetzner Dedicated Server with vSwitches or Bare Metal you can leave it at multicast.\n\nTo avoid conflicts between several Kubealived installations within the same\nnetwork the `VRID` Virtual Router ID should be different for each installation\nwithin a particular network. It should be in the range from 1 to 255.\n\n```\n$ IFACE=\"\u003cNetwork Interface\u003e\"\n$ IP=\"\u003cIP Address\u003e\"\n$ curl -s https://raw.githubusercontent.com/Gurkengewuerz/kubealived/main/manifests/kubealived.yaml | \\\n       sed -e \"s/_IFACE_/${IFACE}/\" \\\n           -e \"s/_IP_/${IP}/\" | \\\n       kubectl apply -f-\n```\n\nAfter deployment one of the master nodes should get the specified IP address on\nthe specified network interface. If this master node or a running pod on it\nis down, the IP address moves to another master node.\n\n## Try With Docker\n\n1. clone this repository\n```\n$ git clone git@github.com:Gurkengewuerz/kubealived.git\n$ cd kubealived/\n```\n\n2. edit `docker-compose.yml` enviroment variables to your needs\n\n3. run container using `docker-compose`:\n\n```\n$ docker-compose up\n```\n\nYour host now have the `KEEPALIVE_IPADDRESS` IP address assigned to the `KEEPALIVE_INTERFACE`. If you run the same on another host in the same network and\nstop this one, the IP address will be moved over.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgurkengewuerz%2Fkubealived","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgurkengewuerz%2Fkubealived","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgurkengewuerz%2Fkubealived/lists"}