Closed wondertalik closed 1 year ago
Hey @wondertalik,
without any additional info on how you setup your cluster or installed Cilium I can not help you. You can take a look at how we setup cilium for our e2e tests: https://github.com/hetznercloud/hcloud-cloud-controller-manager/blob/892c20e199e1aee64e731aa9f05e9320dfc5d1bd/hack/dev-up.sh#L145-L148
In general I did not have problems with just running cilium install
in the default configuration on Hetzner Cloud, but this always depends on how you setup your Kubernetes cluster. In general this is outside of what we (the cloud provider) provide support for.
Hey @apricote
you can find details here. This one i have installed with helm. Old one just with cilium install
.
I tried use cilium install with terraform. So result was the same, same errors that i put in first message.
I noticed you are using the Network Support from hccm to setup Routes for Pod Subnets in Hetzner Cloud, but your Cilium is not configured to make use of this. Take a look at the 3 --set
flags I set above to learn how you can configure cilium to make use of this. This may be one source of issues.
@apricote thanks --set flags whas helpfull. thanks.
I just figure out, after installing cilium and hccm need to restart kubelet service on each node because pods was with external ip. After restarting all pods changed to cidr ips.
But now i have another problem
```bash
/¯¯\
/¯¯\__/¯¯\ Cilium: 6 errors
\__/¯¯\__/ Operator: OK
/¯¯\__/¯¯\ Hubble Relay: disabled
\__/¯¯\__/ ClusterMesh: disabled
\__/
DaemonSet cilium Desired: 5, Ready: 5/5, Available: 5/5
Deployment cilium-operator Desired: 2, Ready: 2/2, Available: 2/2
Containers: cilium Running: 5
cilium-operator Running: 2
Cluster Pods: 6/6 managed by Cilium
Image versions cilium quay.io/cilium/cilium:v1.13.2: 5
cilium-operator quay.io/cilium/operator-generic:v1.13.2: 2
Errors: cilium cilium-nxpmf controller sync-to-k8s-ciliumendpoint (802) is failing since 10s (16x): endpoint sync cannot take ownership of CEP that is not local ("external-ip-1")
cilium cilium-wlgpp controller sync-to-k8s-ciliumendpoint (1790) is failing since 4s (17x): endpoint sync cannot take ownership of CEP that is not local ("external-ip-1")
cilium cilium-wlgpp controller sync-to-k8s-ciliumendpoint (113) is failing since 4s (17x): endpoint sync cannot take ownership of CEP that is not local ("external-ip-3")
cilium cilium-wlgpp controller sync-to-k8s-ciliumendpoint (4) is failing since 4s (17x): endpoint sync cannot take ownership of CEP that is not local ("external-ip-3")
cilium cilium-z9lll controller sync-to-k8s-ciliumendpoint (276) is failing since 5s (17x): endpoint sync cannot take ownership of CEP that is not local ("external-ip-4")
cilium cilium-z9lll controller sync-to-k8s-ciliumendpoint (1531) is failing since 5s (17x): endpoint sync cannot take ownership of CEP that is not local ("external-ip-4")
is it bug of cilium or some bad configuration of cluster?
Hey @wondertalik,
so far this does not look like a bug in hcloud-cloud-controller-manager. We do not provide support for anything else here, so I will close this issue now.
Good luck with your cilium config, might be worth to recreate the cluster, in case there is still some components running with bad (cached) config.
helm install cilium cilium --repo https://helm.cilium.io/ -n kube-system --version 1.13.1 \ --set tunnel=disabled \ --set ipv4NativeRoutingCIDR=$cluster_cidr \ --set ipam.mode=kubernetes
With this options cilium stop pass any tests and core dns in status pending. Maybe there are some specific options that out of docs?
Logs of core dns
[WARNING] plugin/kubernetes: Kubernetes API connection failure: Get "https://10.96.0.1:443/version": dial tcp 10.96.0.1:443: i/o timeout
Using this values working like a charm and all test passed.
hccm
helm upgrade --install hccm charts/hccm/src/hcloud-cloud-controller-manager -f charts/hccm/values.yaml --namespace kube-system --set networking.enabled=true --set networking.clusterCIDR=$POD_NETWORK_CIDR
cilium
helm upgrade --install cilium charts/cilium/src/cilium -f charts/cilium/values.yaml \
--namespace kube-system \
--set operator.replicas=3 \
--set hubble.relay.enabled=true \
--set hubble.ui.enabled=true
Hello, @apricote. After upgrade to 1.15 with network support.
Clium's helm chart 1.15.4 with options:
helm upgrade --install cilium charts/cilium/src/cilium -f charts/cilium/values.yaml --reuse-values --namespace kube-system --set kubeProxyReplacement=true --set k8sServiceHost=10.0.1.2 --set k8sServicePort=6443 --set operator.replicas=1 --set hubble.relay.enabled=true --set hubble.ui.enabled=true --set hubble.ui.ingress.enabled=false --set routingMode=native --set ipv4NativeRoutingCIDR=10.0.16.0/20 --set ipam.mode=kubernetes --set k8s.requireIPv4PodCIDR=true
When deploying Cilium, make sure that you have set tunnel: disabled and nativeRoutingCIDR to your clusters subnet CIDR. If you are using Cilium < 1.9.0 you also have to set blacklist-conflicting-routes: false.
And Upgrade Guide to cilium 1.15 now says this:
The tunnel option (deprecated in Cilium 1.14) has been removed. To enable native-routing mode, set routing-mode=native (previously tunnel=disabled). To configure the tunneling protocol, set tunnel-protocol=vxlan|geneve (previously tunnel=vxlan|geneve).
cilium connectivity test
ime="2024-05-02T08:19:51Z" level=error msg="Error while inserting service in LB map" error="Unable to upsert service [real ip ipv6]:80 as IPv6 is disabled" k8sNamespace=ingress-nginx k8sSvcName=ingress-nginx-controller subsys=k8s-watcher (1 occurrences)
k get svc -o yaml -n ingress-nginx ingress-nginx-controller
apiVersion: v1
kind: Service
metadata:
annotations:
load-balancer.hetzner.cloud/location: nbg1
load-balancer.hetzner.cloud/name: load-balancer-ingreses
load-balancer.hetzner.cloud/type: lb11
load-balancer.hetzner.cloud/use-private-ip: "true"
meta.helm.sh/release-name: ingress-nginx
meta.helm.sh/release-namespace: ingress-nginx
creationTimestamp: "2024-05-02T08:17:01Z"
finalizers:
- service.kubernetes.io/load-balancer-cleanup
labels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
app.kubernetes.io/version: 1.10.1
helm.sh/chart: ingress-nginx-4.10.1
name: ingress-nginx-controller
namespace: ingress-nginx
resourceVersion: "2012"
uid: 641b8039-4895-48f8-8971-9b2e90ecb00a
spec:
allocateLoadBalancerNodePorts: true
clusterIP: 10.103.255.105
clusterIPs:
- 10.103.255.105
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- appProtocol: http
name: http
nodePort: 30646
port: 80
protocol: TCP
targetPort: http
- appProtocol: https
name: https
nodePort: 30560
port: 443
protocol: TCP
targetPort: https
selector:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/name: ingress-nginx
sessionAffinity: None
type: LoadBalancer
status:
loadBalancer:
ingress:
- ip: [real ip ipv4]
- ip: [real ip ipv6]
- ip: 10.0.1.7
i tried to use annotation load-balancer.hetzner.cloud/ipv6-disabled: true
but result is the same. As i understand ipv6 is enabled. So this error of hcloud o some my configuration?
Hello,
i have a problem with cilium in a new clusters. Is it problem of cilium of something related with hetzner? Interesting, but another my k8s cluster pass all tests without errors.