►
From YouTube: Kubernetes Observability by Janaka Wickramasinghe
Description
Sri Lanka has a growing group of Cloud Native enthusiasts, students, professionals, and technology leaders. KCD Sri Lanka offers a platform for this community to come together and connect with other tech communities in India and neighboring countries. It provides an opportunity to experience conferences like KubeCon / CloudNativeCon together with the rich cultural heritage of Sri Lanka.
A
Thank
you,
kavisha
hi,
everybody
kubernetes
is
a
unique
Beast
which
consists
of
a
multi-layered
Weber
resources
and
services.
Achieving
observability
is
a
daunting
task,
even
for
the
best
and
brightest
Among
Us.
This
presentation
will
give
you
a
high
level
overview
and
some
implementation
approaches
to
achieve
observability
in
kubernetes.
A
So
let's
first
look
into
what
is
observability
to
understand.
Observability
the
observability,
as
well
as
monitoring,
is
used
interchangeably,
although
there's
a
subtle
difference
between
them,
while
observability
actually
talks
about
the
ability
of
internal
to
assess
the
internal
systems
test
based
on
the
data,
it
provides
monitoring,
deals
with
the
collection
and
Analysis
of
data
pulled
from
the
infrastructure,
so
observability
will
help
you
to
gain
deeper
insight
to
health
and
status
of
different
application
and
resources
across
infrastructure.
This
help
to
proactively
detect
abnormalities,
analyze
and
analyze
issues
and
resolve
them.
A
A
Let's
move
into
the
monitoring,
so
the
foundation
of
observability
is
monitoring
which
involves
pooling
and
analyzing
data
from
your
infrastructure,
so
the
it
started
with
SNMP
the
simple
Network
protocol
since
back
into
the
1988,
where
we
used
to
get
information
about
the
network
say,
for
example,
like
every
10
seconds
or
30
seconds.
Now
there
are
much
more
newer
protocols
available,
such
as
the
open,
config,
GPR,
grpc,
Network
management
interface
protocol
that
can
provide
much
more
real-time
information,
okay,
Telemetry
and
a
APM
application
performance
monitoring,
also
a
type
of
monitoring.
A
A
Let's
look
at
what
are
the
different
types
of
levels
of
kubernetes
monitoring,
so
there
are
two
types
of
kubernetes
monitoring
available:
two
levels
of
kubernetes
monitoring
available:
one
is
the
cluster
level
which
focuses
on
the
Node
information
about
the
information
and
the
cluster
resource
level.
Information
utilization
and
the
Pod
level
focuses
more
on
the
container
level,
especially
on
the
application,
as
well
as
the
container
level
information.
A
Okay,
let's
see
why
why
this
monitoring
is
so
important.
So
in
Cloud,
native
or
microservices
apps
are
very
complex
and
you
got
a
lot
of
moving
Parts
when
a
issue
occurs,
it's
very
difficult
to
pinpoint
and
identify
the
issue,
so
monitoring
is
important
for
reliability
as
well
as
troubleshooting.
Secondly,
knowing
your
infrastructure
will
help
you
to
optimize
your
Hardware.
Thirdly,
public
Cloud.
If
you
are
using
a
public
Cloud
infrastructure,
you
will
play
a
the
crosstalk
player.
A
Major
role,
so
having
insights
into
the
kubernetes
environment
will
help
you
to
reduce
the
cloud
spending
some
instances
you
may
be
using
kubernetes
in
a
multi-tenant
or
you
are
providing
it
to
your
internal
customers.
So
in
that
case,
having
insights
will
help
you
to
charge
back
or
show
back
to
your
internal
customers.
Finally,
observation
observability
is
actually
a
Cornerstone
for
your
security
strategy,
so
you
will
be
able
to
identify
any
malicious,
Ingress
and
egress
traffic
or
any
unwanted
pods
and
services
that
is
running
in
your
environment,
all
right.
A
So
there
are
some
challenges
that
comes
through
with
this
observability
as
well.
So
one
is
the
amount
of
data,
so
you
get
data
from
your
nodes.
You
get
data
from
your
ports,
the
flow
data,
so
much
of
data
that
you
have
to
manage,
and
secondly,
you
have
you
also
have
difficulty
because
it's
a
distributed
system,
you
have
so
many
moving
paths.
Getting
this
full
picture
also
is
a
bit
of
a
challenge
that
you
will
face
as
well.
Finally,
you
will
because
kubernetes
is
a
declarative
in
nature.
A
You
can
actually
Define
how
it's,
how
you
want
the
pods
to
run
and
create
it,
so
that
actually
might
give
a
false
positive,
especially
when
it
comes
to
Performance
all
right,
so
the
best
practices
when
it
comes
to
best
practices.
Firstly,
the
granular
resources,
like
the
CPU
memory
load,
those
things
are
very
important,
but
can
be
very
complex
and
convoluted
so
to
easily
identify
the
microservices
issue.
The
API
metrics
are
the
main
part.
A
So
what
you
can
use
is
like
the
request
right,
the
call
error
latency
that
will
help
you
to
quickly
identify
the
degrading
components
in
your
microservice.
Another
aspect
is
high
disk
usage.
So
that's
a
very
common
common
issue
that
you
will
come
across.
So
there's
no
like
a
straight
away:
magical
Solutions.
Just
make
sure
you
know
when
it
hits
about
70
to
80
percent
of
your
storage
notified.
Take
some
actions
right.
A
So,
even
though
the
user
experience
end
user
experience
is
not
built
into
kubernetes,
it's
also
most
very
important
and
a
best
practice
to
understand
and
monitor
end
users,
experience
and
and
address
issue
so
that
the
X
end
user
will
can
provide
you
positive
feedback
as
well,
and
if
you
are
running
in
public
Cloud,
you
have
to
make
sure
you
adhere
to
the
best
practices
of
the
cloud
in
terms
of
access
and
identity,
cost
Network
performance
Etc
all
right.
Let's
get
back
to
the
three
pillars
of
observability.
A
As
I
mentioned,
it's
very
important
when
you
create
and
Implement
your
observability
for
kubernetes,
so
for
the
first
pillar
is
a
logs.
The
lock.
Basically
a
log
is
a
representation
of
a
discrete
event.
In
most
cases,
it
describe
what
will
happen
with
your
service.
Log
will
produce
in
multiple
ways
in
kubernetes,
especially
so
you
will
have
cluster
related
log.
You
will
have
pod
related
logs.
You
will
have
application
related
logs
Network
and
all
that,
so
you
have
to
have
a
mechanism
to
collect
all
these
logs
and
push
it
to
a
central
analytics.
Server.
A
Second
pillar
is
a
matrix,
so
Matrix
is
a
numerical
representation
of
data
measured
over
a
period
of
time,
say,
for
example,
how
many
200
requests
did
I
get
in
last
30
seconds
and
the
last
one
is
the
tracing
tracing
is
a
mechanism
that
will
help
you
to
track
end
to
end
end-to-end
and
identify
so
your
whole
transaction.
You
can
manage
into
you
can
track
it
end
to
end
and
identify
troubleshoot
the
issue
all
right.
So
let's
look
at
a
sample
of
purpose,
built
Observer,
observability
platform
for
kubernetes.
A
So
this
one
we
have
three
layers.
So
the
what
the
first
layer
is
the
telemetric
collection.
So
this
is
where
you
collect
various
flows
and
different
data,
and
the
second
layer
will
give
you
the
analytic
conversibility,
where
the
different
analysis
can
be
performed.
So
you
could
even
put
some
machine
learning
machine,
learn,
anomaly,
detection
and
finally,
on
the
security
and
troubleshooting
layer.
A
Tools
for
implementing
kubernetes
observability
includes
first
at
the
bare
minimum.
You
can
have
kubernetes
dashboard
kubernetes
dashboard
will
give
you
a
bare
minimum
information
about
the
deployment
of
application
into
ports,
application
running
Imports
issues,
this
application
running
in
the
ports
resource
utilization,
so
that
this
can
be
used
as
a
bare
minimum
obserability
tool.
A
Secondly,
Prometheus
is
a
collection
and
storage
of
observability
data,
so
it
provides
you
with
a
multi-dimensional
data
model
with
time
series
format,
and
it
provides
also
provides
a
query.
Language
called
form
ql
to
analyze.
Further
several
modes
can
be
available
with
different
type
of
graphs,
as
well
as
dashboards.
A
Prometheus
can
be
integrated
with
many
other
things
like
the
grafana
and
all
that
as
well,
so
on
on
grafana
side,
it
will
give
you
a
visualizing
observability
data,
so
it
grafana
gives
you
a
data,
Rich
dashboard
and
using
information
sources
like
the
promises
like
I
just
mentioned,
and
it
also
provides
a
built-in
dashboards
for
kubernetes
like
actually
Four
dashboards.
One
is
a
cluster
dashboard,
no
dashboard
hot,
then
for
then
container
dashboard,
as
well
as
the
deployment
dashboard.
A
Further
grafana
has
a
few
more
plugins
that,
for
example,
grafana
Loki
also
can
give
you
a
similar
observability
to
your
kubernetes
environment
and
Jaeger
is
a
distributed
system
tracking
tracing
system
for
kubernetes.
They
actually
came
from
Uber's
engineering
team.
It
gives
you
end-to-end
tracing
solution,
so
it
helps
you
to
monitor
troubleshoot
transactions
in
a
complex
distributed
system
and
help
you
to
identify
the
root
causes,
as
well
as
optimize
performance
and
latencies,
and
monitor
distributed
transactions
as
well
further.
A
Finally,
the
elastic
stack
elastic
stack
includes
elasticsearch,
which
is
the
analytical
engine
and
a
long
stash
and
beats
captures
and
sends
the
lock
to
elasticsearch
and
kibana.
You
can
use
it
to
get
the
dashboards.
You
can
also
drop
log
stash
and
beats
and
combine
it
with
something
like
a
fluent.
Then
you
get
a
efk
stack,
which
also
will
give
you
a
stack
for
you
to
implement
your
observability
in
kubernetes
with
that
because
of
the
scale
of
modern
infrastructure
and
the
dynamic
name.
A
Nature
of
kubernetes
observability
is
a
critical
component
and
the
three
pillars
I
have
mentioned.
That
is
the
log.
Matrix
phrasing
will
not
only
help
you
to
increase
the
observability,
but
also
help
you
to
gain
insights
to
your
infrastructure,
regardless
of
your
technology
such
that
you
use.
The
tools
mentioned
here
are
the
de
facto
standard
tools
used
by
the
cloud
native
community
and
implementing
them
will
help
you
to
gain
observability
in
your
kubernetes
environment.
Thank
you
and
have
a
pleasant
day.