Category Archives: Networking

Kubernetes: update AWS Route53 DNS from an Ingress

22 November 2020
 

 We’d like to have the ability to add a DNS-record on the AWS Route53 when a Kubernetes Ingress resource is deployed and point this record to the URL of an AWS Load Balancer which is created by the ALB Ingress controller. To achieve this, the ExternalDNS can be used which will make API-requests to the… Read More »

Kubernetes: Service, load balancing, kube-proxy, and iptables

1 November 2020
 

 One day I wondered – how is load balancing between pods is working in Kubernetes? I.e. – we have an external Load Balancer. Then a Service. And behind it – Pods. What happens when we are receiving a network packet from the world, and we have a few pods – how the traffic will be… Read More »

Kubernetes: load-testing and high-load tuning – problems and solutions

4 September 2020
 

 Actually, this post was planned as a short note about using NodeAffinity for Kubernetes Pod: But then, as often happens, after starting writing about one thing, I faced another, and then another one, and as a result – I made this long-read post about Kubernetes load-testing. So, I’ve started about NodeAffinity, but then wondered how… Read More »

Kubernetes: ClusterIP vs NodePort vs LoadBalancer, Services, and Ingress – an overview with examples

24 June 2020
 

 For network communications, Kubernetes presents four Service types – ClusterIP (the default one), NodePort, LoadBalancer, and ExternalName, plus the Ingress resources. In this post, we will take a short overview of all of them, and will check how they are working. The documentation is available here – Publishing Services (ServiceTypes). I’m using AWS Elastic Kubernetes… Read More »

Kubernetes: 503 no endpoints available for service – causes and solutions

15 June 2020
 

 We have a Redis service running behind a Service with the ClusterIP type. This Redis must accessible by pods from the same namespace (a Gorush service). The problem is that those pod can’t connect to the Redis service using its gorush-server-redis-svc:6379 name and reporting “Can’t connect redis server: connection refused“: Although the service is present… Read More »

HTTP: redirects, POST and GET requests, and the “lost” data

23 November 2019
 

 We have a web application which has to accept POST-requests from clients. In front of this application, there is some proxy service, no matter which – initially, we faced the issues on an AWS’s Application Load Balancer, then I reproduced them with NGINX, and it will “work” for any other proxying system. Besides proxying –… Read More »

dnsmasq: AWS – “Temporary failure in name resolution”, logs, debug and dnsmasq cache size

28 October 2019
 

 We are using AWS VPC DNS and sometimes facing with errors like “php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution“. The only advice from AWS tech. support was to configure a local dnsmasq service to act as a local DNS cache, but I did this already year ago and this issue happens once in 1-2-3… Read More »

OpenVPN: the No route to host and ERR_ADDRESS_UNREACHABLE errors – the cause and a solution

14 October 2019
 

 We have an OpenVPN Access Server running, see its setup in the OpenVPN: OpenVPN Access Server set up and AWS VPC peering configuration post. The VPN server is hosted in a first AWS VPC, while a Bitwarden service – in another one VPC. Between those VPCs we have a VPC peering configured, and the OpenVPN… Read More »

Redis: main configuration parameters and performance tuning overview

10 September 2019
 

 Currently configuring Redis server as our backend caching service and during that wrote this post with some things to pay attention at in Redis config file. Shortly enough but with links to other posts or documentation. Let’s begin with the redis-benchmark utility. Will be installed alongside with Redis service, so can be used right after… Read More »

Docker: Compose shared networks

20 August 2019
 

 We have a Docker Compose stack with Jenkins, SonarQube, and PostgresSQL, check the SonarQube: running tests from Jenkins Pipeline in Docker post. The problem is that they are described in the same Docker Compose file and are restarted by the same systemd file (check the Linux: systemd сервис для Docker Compose post, Rus) Thus, if… Read More »