julismz
Creating a cluster with libcluster and Kubernetes
I’m having problems creating a cluster with libcluster and K8S…
The error I’m having is:
`[warning] [libcluster:k8s] unable to connect to :"foo@10.244.2.106": not part of network
These are my kubernetes configs:
apiVersion: apps/v1
kind: Deployment
metadata:
name: foo
spec:
replicas: 4
selector:
matchLabels:
app: foo
template:
metadata:
labels:
app: foo
spec:
serviceAccountName: foo-account
containers:
- name: foo
image: full_node:latest
args: ["--name", "foo@$(MY_POD_IP)", "--cookie", "foo-cookie"]
imagePullPolicy: IfNotPresent
ports:
- containerPort: 4000
env:
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
---
apiVersion: v1
kind: Service
metadata:
name: foo-service
namespace: default
spec:
selector:
app: foo
ports:
- protocol: TCP
name: api
port: 4000
targetPort: 4000
- protocol: TCP
name: web
port: 4001
targetPort: 4001
type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
name: foo-nodes
namespace: default
spec:
type: ClusterIP
clusterIP: None
selector:
app: foo
ports:
- name: epmd
port: 4369
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods", "endpoints"]
verbs: ["get", "watch", "list"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-pods
namespace: default
subjects:
- kind: ServiceAccount
name: foo-account
namespace: default
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: foo-account
namespace: default
The libcluster config:
topologies = [
k8s: [
strategy: Cluster.Strategy.Kubernetes.DNS,
config: [
service: "foo-nodes",
application_name: "foo"
]
]
]
Communication between pods are fine. Endpoints
kubectl get endpoints
NAME ENDPOINTS AGE
foo-nodes 10.244.2.100:4369,10.244.2.101:4369,10.244.2.102:4369 + 1 more... 15m
Services
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
foo-nodes ClusterIP None <none> 4369/TCP 37m
foo-service LoadBalancer 10.101.190.19 <pending> 4000:31343/TCP,4001:32461/TCP 4h53m
I followed several tutorials like this: Connecting Elixir Nodes with libcluster, locally and on Kubernetes Read the docu: Cluster.Strategy.Kubernetes.DNS — libcluster v3.5.0 I don’t know what else I can try…
Any though?
Marked As Solved
mruoss
What is the command that is executed in the container? --name and --cookie are arguments to the elixir or iex command. If you built a release try working with env vars instead of args:
env:
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: RELEASE_DISTRIBUTION
value: name
- name: RELEASE_NODE
value: foo@$(MY_POD_IP)
- name: RELEASE_COOKIE
value: foo-cookie
1
Last Post!
julismz
Popular in Questions
Lets say I have map like this fetching from my database
%{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
Hi All,
I set a environment variables in dev.exs , like below code.
when i start server, how can i set the ${enable} value?
thanks.
d...
New
Hey,
Just curious what are the main benefits of Elixir compared to Clojure?
When is Elixir more useful than Clojure and vice versa?
Th...
New
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
Other popular topics
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible.
total = 10
while total != 0
...
New
Hello!
tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability.
After spen...
New
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #hex
- #security









