Skip to main content

Kubernetes Logging

Kubernetes Logging

/var/log/containers ==> default log location on nodes. Last two log files are retained on the node.

In order to aggregate logs from varies sources like pods, containers , nodes, control plane and events we use fluentd and elastic search for searching and grafana for visualization.


Logging Architecture - Nodes:

  • Kubectl logs $POD_NAME ==> accessing pod logs
  • Kubectl logs $POD_NAME -c $CONTAINER_NAME ==> specific container inside a pod.
  • Kubectl logs $POD_NAME --all-containers
  • Kubectl logs $POD_NAME --all-containers --follow ==> real time logs
  • Kubectl logs --selector app=backend --all-containers

When an api server is down then in that case we cannot use kubectl get logs instead we can log in to a node and directly run 

  • docker logs $CONTAINER_NAME

What if docker is not available? 

  • tail -f /var/log/containers/$CONTAINER_NAME$CONTAINER_ID

Logging Architecture - Control Plane:

Get a list of control plane pods using a selector
  • kubectl get pods --namespace kube-system --selector tier=control-plane
  • kubectl logs --namespace kube-system $POD_NAME

Kubernetes Events:

Logs for resources defined in the cluster changes in resource state.
  • kubectl get events
  • kubectl describe $TYPE $NAME

Happy Learning😉

Comments

Popular posts from this blog

Kubernetes ETCDCTL

ETCD is a key-value data store for storing kubernetes state and objects. ETCDCTL is the tool used to back up with snapshot. ETCDCTL a command line tool for interacting with the etcd server  Key Features:  Keep the event history until compaction. access to old version of keys. user controlled key compaction. Support range query. pagination support with limit argument. support consistency guarantee across multiple queries. Replace TTL key with lease. Support watch feature. ETCDTOOL Installation: Build binary from source code  Download tool directly  Build binary from source code: Checkout the code repository git clone -b v3.4.16 https://github.com/etcd-io/etcd.git Change directory to etcd cd etcd Run build script ./build The binaries are under the bin directory. exportPATH="$PATH:`pwd`/bin" Check etcd version etcd --version Download ETCD tool directly: kubectl exec -it etcd-docker-desktop -n kube-system -- /bin/bash -c 'ETCDCTL_API=3 /usr/local/bin/etcd --version' | h

Selenium Basic Commands.

Selenium Commands, Packages and Exceptions. Here I have selected few most frequently asked commands in the interview. Recommended way of Importing webdriver from selenium package. from selenium import webdriver. Once webdriver is imported then you are able to access the classes like this webdriver.Firefox webdriver.FirefoxProfile webdriver.Chrome webdriver.ChromeOptions webdriver.Ie webdriver.Opera webdriver.PhantomJS webdriver.Remote webdriver.DesiredCapabilities webdriver.ActionChains webdriver.TouchActions webdriver.Proxy To launch the application URL: driver = webdriver.Chrome driver.get('http://youtube.com') To get URL of the currently loaded page: driver.current_url To close the current window: driver.close() Exceptions in Selenium: Base Exception class: Selenium.common.exceptions selenium.common.exceptions.WebDriverException selenium.common.exceptions.InvalidElementStateException selenium.common.exceptions

Selenium - Architecture

Selenium Architecture: Here, we will learn about the overall selenium architecture. How communication happens from client library to browser and which are all the components involved between them. Architecture compromises of major four components namely Selenium Language Binding JSON Wire Protocol Browser Drivers Real Browsers 1. Selenium Language Binding: Various programming languages provide their own Rest API support for communicating to their respective browser drivers via JSON Wire protocol. python provides 'selenium ' as a client library which has all the rest API i mplementation  for communicating with browser drivers. Selenium is a third party library which does not come in python basic installation.  You need to install it via PIP command : pip install selenium driver = selenium.webdriver.Chrome('location of the chrome driver executable')  Above line returns one chrome browser session , where rest all browser relate