# Every third request to apiserver from pods returns: Connection refused

**URL:** <https://discuss.kubernetes.io/t/every-third-request-to-apiserver-from-pods-returns-connection-refused/21750>\
**Category:** General Discussions\
**Tags:** apiserver\
**Created:** [October 26, 2022, 1:03pm UTC](https://discuss.kubernetes.io/t/every-third-request-to-apiserver-from-pods-returns-connection-refused/21750 "2022-10-26T13:03:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![imntreal](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.kubernetes.io/imntreal/32/11085_2.png) [@imntreal](https://discuss.kubernetes.io/u/imntreal)\
**Post date:** [October 26, 2022, 1:03pm UTC](https://discuss.kubernetes.io/t/every-third-request-to-apiserver-from-pods-returns-connection-refused/21750/1 "2022-10-26T13:03:38Z")

</div>

### Cluster information:

Kubernetes version: v1.25.2  
Cloud being used: bare-metal  
Installation method: kubeadm  
Host OS: Clear Linux  
CNI and version: Flannel v1.1.0  
CRI and version: containerd v1.6.8

kubeadm.yaml:

```auto
---
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: ###################
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
localAPIEndpoint:
  advertiseAddress: 172.16.73.16
  bindPort: 443
nodeRegistration:
  criSocket: unix:///run/containerd/containerd.sock
  imagePullPolicy: IfNotPresent
  name: vminkube01.nghs.com
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/control-plane
---
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
apiServer:
  certSANs:
  - 172.16.73.21
  - 172.16.73.16
  - 172.16.73.17
  - 172.16.73.18
  - kube.nghs.com
  extraArgs:
    authorization-mode: Node,RBAC
  timeoutForControlPlane: 4m0s
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: kube.nghs.com:443
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.k8s.io
kubernetesVersion: v1.25.2
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.245.0.0/16
scheduler: {}
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: "systemd"
protectKernelDefaults: false

```

kube-apiserver.yaml (control-plane 1):

```auto
---
apiVersion: v1
kind: Pod
metadata:
  annotations:
    kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: 172.16.73.16:443
  creationTimestamp: null
  labels:
    component: kube-apiserver
    tier: control-plane
  name: kube-apiserver
  namespace: kube-system
spec:
  containers:
  - command:
    - kube-apiserver
    - --advertise-address=172.16.73.16
    - --allow-privileged=true
    - --authorization-mode=Node,RBAC
    - --client-ca-file=/etc/kubernetes/pki/ca.crt
    - --enable-admission-plugins=NodeRestriction
    - --enable-bootstrap-token-auth=true
    - --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt
    - --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt
    - --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key
    - --etcd-servers=https://127.0.0.1:2379
    - --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt
    - --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key
    - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
    - --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt
    - --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key
    - --requestheader-allowed-names=front-proxy-client
    - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
    - --requestheader-extra-headers-prefix=X-Remote-Extra-
    - --requestheader-group-headers=X-Remote-Group
    - --requestheader-username-headers=X-Remote-User
    - --secure-port=443
    - --service-account-issuer=https://kubernetes.default.svc.cluster.local
    - --service-account-key-file=/etc/kubernetes/pki/sa.pub
    - --service-account-signing-key-file=/etc/kubernetes/pki/sa.key
    - --service-cluster-ip-range=10.245.0.0/16
    - --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
    - --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
    image: registry.k8s.io/kube-apiserver:v1.25.2
    imagePullPolicy: IfNotPresent
    livenessProbe:
      failureThreshold: 8
      httpGet:
        host: 172.16.73.16
        path: /livez
        port: 443
        scheme: HTTPS
      initialDelaySeconds: 10
      periodSeconds: 10
      timeoutSeconds: 15
    name: kube-apiserver
    readinessProbe:
      failureThreshold: 3
      httpGet:
        host: 172.16.73.16
        path: /readyz
        port: 443
        scheme: HTTPS
      periodSeconds: 1
      timeoutSeconds: 15
    resources:
      requests:
        cpu: 250m
    startupProbe:
      failureThreshold: 24
      httpGet:
        host: 172.16.73.16
        path: /livez
        port: 443
        scheme: HTTPS
      initialDelaySeconds: 10
      periodSeconds: 10
      timeoutSeconds: 15
    volumeMounts:
    - mountPath: /etc/ssl/certs
      name: ca-certs
      readOnly: true
    - mountPath: /etc/kubernetes/pki
      name: k8s-certs
      readOnly: true
  hostNetwork: true
  priorityClassName: system-node-critical
  securityContext:
    seccompProfile:
      type: RuntimeDefault
  volumes:
  - hostPath:
      path: /etc/ssl/certs
      type: DirectoryOrCreate
    name: ca-certs
  - hostPath:
      path: /etc/kubernetes/pki
      type: DirectoryOrCreate
    name: k8s-certs
status: {}

```

kube-vip.yaml:

```auto
---
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  name: kube-vip
  namespace: kube-system
spec:
  containers:
  - args:
    - manager
    env:
    - name: vip_arp
      value: "true"
    - name: port
      value: "443"
    - name: vip_interface
      value: ens192
    - name: vip_cidr
      value: "32"
    - name: cp_enable
      value: "true"
    - name: cp_namespace
      value: kube-system
    - name: vip_ddns
      value: "false"
    - name: svc_enable
      value: "true"
    - name: vip_leaderelection
      value: "true"
    - name: vip_leaseduration
      value: "5"
    - name: vip_renewdeadline
      value: "3"
    - name: vip_retryperiod
      value: "1"
    - name: address
      value: 172.16.73.21
    - name: prometheus_server
      value: :2112
    image: ghcr.io/kube-vip/kube-vip:v0.5.5
    imagePullPolicy: Always
    name: kube-vip
    resources: {}
    securityContext:
      capabilities:
        add:
        - NET_ADMIN
        - NET_RAW
    volumeMounts:
    - mountPath: /etc/kubernetes/admin.conf
      name: kubeconfig
  hostAliases:
  - hostnames:
    - kubernetes
    ip: 127.0.0.1
  hostNetwork: true
  volumes:
  - hostPath:
      path: /etc/kubernetes/admin.conf
    name: kubeconfig
status: {}

```

I raised an issue with flannel on the topic: [Unable to connect to kubernetes.default.svc from pods · Issue #1661 · flannel-io/flannel · GitHub](https://github.com/flannel-io/flannel/issues/1661)

The thought there is that there is a problem with kube-apiserver. I think there could be a configuration issue with one of my three control-plane nodes as it is consistently failing every third time.

Please, let me know if other information would be helpful in finding my issue.

Thanks,  
Jameson

---

<div class="post-metadata">

**Author:** ![imntreal](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.kubernetes.io/imntreal/32/11085_2.png) [@imntreal](https://discuss.kubernetes.io/u/imntreal)\
**Post date:** [October 26, 2022, 3:00pm UTC](https://discuss.kubernetes.io/t/every-third-request-to-apiserver-from-pods-returns-connection-refused/21750/2 "2022-10-26T15:00:47Z")

</div>

Well, after restarting my control-plane nodes, it seems to be failing more frequently internally, but curling my external address from a pod seems to work every time.

---

<div class="post-metadata">

**Author:** ![imntreal](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.kubernetes.io/imntreal/32/11085_2.png) [@imntreal](https://discuss.kubernetes.io/u/imntreal)\
**Post date:** [October 31, 2022, 7:30pm UTC](https://discuss.kubernetes.io/t/every-third-request-to-apiserver-from-pods-returns-connection-refused/21750/3 "2022-10-31T19:30:12Z")

</div>

After digging in some more, I discovered that when I added my second and third control-plane nodes, they had kube-apiservice listening on the default 6443 instead of 443 which I defined when I created the cluster on the first node. After changing all references I could find from 6443 to 443 on the other two nodes, now, it seems all connection attempts from inside the cluster are returning “connection refused”

---

<div class="post-metadata">

**Author:** ![imntreal](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.kubernetes.io/imntreal/32/11085_2.png) [@imntreal](https://discuss.kubernetes.io/u/imntreal)\
**Post date:** [November 2, 2022, 5:49pm UTC](https://discuss.kubernetes.io/t/every-third-request-to-apiserver-from-pods-returns-connection-refused/21750/4 "2022-11-02T17:49:26Z")

</div>

I gave up on running the apiserver on port 443. I redeployed with the default, 6443. Now, everything seems to be working.
