►
Description
Join members from the ASP.NET teams for our community standup covering great community contributions for ASP.NET, ASP.NET Core, and more.
Community Links: https://www.theurlist.com/aspnet-community-standup-2020-02-25
A
B
A
B
B
A
Work
so
I
did
not
come
back
to
work
and
I'm,
always
hustling
for
speakers
and
I'm,
like
oh
shoot,
I
got
an
email
yeah,
so
anyhow
yeah.
This
is
great,
so
this
is
feel
better
excellent,
good
good.
This
was
definitely
like.
We
put
the
thing
at
the
beginning
at
the
end
of
the
show
where
it's
like,
where
you
can
request
something.
A
B
A
B
B
A
The
thing
and
then
hopefully
my
Mac
will
continue
there.
Will
you
okay?
So,
yes,
this
is
the
yes,
we
are
sharing
these
on
the
you
were
list
and
these
the
links
also
include
them
at
the
end,
don't
have
a
huge
amount
today,
but
some
pretty
good
ones.
I
think
john
hilton
riding
on
from
webforms
to
blazer.
So
definitely
this
is
really
a
refactoring
of
a
web
forms
application.
There's
not
really
much
blazer
specific
in
here.
This
is
more
setting
you
up
for
success
right.
B
A
A
Is
he
says
a
lot
of
time,
people
look
at
a
rewrite
and
they'll
say:
okay,
what
are
we
gonna
do
and
then
they
start
doing
this
big
rewrite
and
then
they're
halfway
through
it
and
then
they're
maintaining
two
applications-
and
you
know
so.
I've
been
on
some
of
these
in
the
past,
where
the
rewrite
never
actually
shipped
right,
and
so
that's
a
bad
place
to
be
so.
What
he
talks
about
doing
is
doing
a
refactor
as
a
bunch
of
small
refactoring
steps.
A
A
A
Is
something
we
hear
over
and
over
again
yeah,
but
we
don't
often
have
to
confront
our
mistakes
right
right
and
it's,
and
definitely
that
was
a
thing
with
web
forms.
Was
it
made
it
pretty
easy
to
put
a
lot
of
code
in,
and
that
is
something
I
do
think
we
need
to
keep
reminding
people
with
blazer.
It's
a
little
bit
easy
to
Zizi
put
too
much
into
the
component
itself
right
so
anyway,
like
that
Christian
wire,
so
I
clump
them
together,
Christian
wire,
also
in
our
blazer
segment.
A
Here
he's
talking
about
running
asp,
net
cord
blazer
webassembly
applications
as
a
PWA,
so
he
talks
about
setting
it
up.
You
know
which
kind
of
which
things
you're
gonna
be
putting
in
your
manifest.
He
actually
uses
work
box,
which
is
from
google
it's
in
the
Google
developer
area
and
it
kind
of
it's
an
NPM
tool
with
CLI,
and
it
kind
of
can
put
all
your
stuff
together
and
also
work
build
your
serviceworker.
A
B
A
But
I
will
full
full
is
a
tough
question.
Yes,
there
are
actually
lots
of
different
ways
to
do.
Pw
A's,
like
there's
lots
of
opinions
about
what
yeah
right
thing
used
to
do
like
you
immediately
went
to
like
we're
using
this
thing
as
a
Service
Worker,
so
it'd
be
interesting
to
compare
and
contrast
what's
in
there
with
what
we're
doing
in
the
Box
we're.
A
A
Too,
okay
cool
one
more
here
or
well.
We
actually
have
two
more
on
the
blazer
front.
This
one
is
using
tailwind
CSS
with
blazer
the
main
reason
I'm
bringing
this
in
like
there
is
some
stuff
about
how
this
was
set
up,
but
I
honestly
haven't
looked
at
talen
before,
and
the
idea
here
is.
This
is
a
great
comparison.
This
is
using
bootstrap
and
you'll
notice
with
bootstrap.
We
have
some
classes
that
are
pretty
opinionated
and
and
tailwind
is
more
of
a
toolkit.
So.
A
Like
an
inline
style
but
more
abstraction
to
it,
yeah
yep,
so
then
after
this
was
the
main
value
honestly
that
I
got
was
like
wow.
This
is
neat.
He
does
walk
through
this
is
you
know
when,
if
you
decide
you're
using
tailwind
how
to
do
that
so
he's
using
with
NPM
and
gulp,
so
he
chose
how
to
set
that
up,
which
you're
gonna
add
for
your
package.
Setting
up.
A
This
is
the
actual
styles
that
he's
using
and
then
he
sets
up
a
gulp
task
and
ren-san
so
pretty
mean
all
right,
one
more
in
the
blazer
world.
So
this
is
unka
and
writing
about
using
OCR
with
4
blazer,
and
here
he's
using.
This
is
a
jur
service,
and
so
you
know
here's
a
nice
animated
gif.
He
shows
up
loading
it
and
he's
actually
OCR
uploaded
images.
So
this
is
pretty
cool
calling
back
into
the
azure
computer
vision.
Cognitive
service.
Is
this.
A
I
had
was
was
client
side
so
yeah.
This
is
server
side,
so
yeah
I'm,
just
making
that
that
rest
call
over
and
so
cool
and
at
the
very
end
of
it
he
shows
a
bunch
of
things
showing
you
know,
uploading
and
you
know
OCR
and
then
handling
in
responses,
and
so
some
neat
cool
all
right.
This
is
from
Andrew
Luck
here
he's
writing
about
if
your
asp
net
core,
if
you
can't
find
a
controller
and
basically
debugging
application
part-
I
saw
this
this
morning
and
I
was
really
happy.
Oh.
A
A
Part
of
its
been
a
core
ok,
so
here
he
talks
about
how
application
parts
can
be
both
inside
your
app
or
you
know
like
with
Razer
class
libraries
can
be
external
and
then
you've
got.
They
can
include.
You
know,
controllers
tag,
helpers,
pages,
views
and
obviously,
in
some
cases,
if
it's
a
your
pager
would
or
whatever
you
may
not
have
abuse
or
may
not
have
a
certain
thing.
So
he
talks
about
how
their
how
they're
built
up
and
then
in
his
case
he
wants
to
actually
see
where's
my
controller
right.
A
So
he
goes
through
and
he
says
there
actually
is
a
doc,
but
he
doesn't
like
it.
The
doc
has
a
controller
that
you
know
lists
him
out
and
he
says
I
think
that
should
be
a
logger
instead,
so
he
creates
a
custom
logger
and
the
logger
basically
iterates
through
the
application
parts
yeah
and
writes
him
out.
So
then
he
found
out
here.
A
The
whole
thing
with
routing
and
it's
I
mean
I,
remember
back
to
like
the
asp
net
MVC
route,
debugger
that,
like
yeah
fil
hacker
way
back
in
the
day,
and
all
that
like
debugging
routing
and
the
the
sometimes,
if
you
have
more
complex
routing
or
if
you
have
some
routing,
is
in
your
in
your
you
know,
it's
declarative
and
sums
and
your
attributes,
and
all
that
is
its.
It
can
be
a
little
tricky
too.
So
that's
actually
nice
thing
with
razor
pages
right.
It
is
it's
well
and.
A
They
have
what's
the
route
template.
Yeah
I've
got
a
visualization
that
you
can
find
in
my
presentations,
repo
and
my
name
on
github
yeah,
that
I've
shown
in
some
talks
before
that
is
like
it
will
show
you
the
actual
tree
structure
that
routing
uses
yep.
So
we
have
code
in
the
product,
that's
supported
and
undocumented,
but
you
can
use
if
you
want
that.
A
B
A
B
A
Well,
I'll
switch
over
when
I
finish
my
hand,
so
I'll
switch
over,
and
you
can
include
that
in
there
that
sounds.
That
sounds
pretty
cool
all
right.
The
last
one
I
have
to
share,
so
she
had
talking
about
handling
errors
in
asp
net
core
3-1,
so
all
the
all
the
handling
stuff.
You
know
different
caching
exceptions
he's
been
building
out
this
net
learner
application,
so
he
shows
that
and
then
different
error
handling
techniques
with
MVC
razor
pages,
Blaser,
etc.
So,
as
always,
he's
writes,
he's
very
insight,
encyclopedic
posts,
so
this
is
just
you
know.
A
A
This
is
a
full
ebook
with
an
application
pool
application,
and
so,
if
you
haven't
looked
at
this
before
I
know,
we've
called
this
out
a
few
times,
but
this
talks
about
different
things
like
client-side
web
technologies
and
compares
your
different
options
and
all
that,
so
it's
all
updated
through
dotnet,
core
31
and
again
I
will
be
sharing
those
links
out
in
the
chat
and
now,
let's
pass
over
yeah
go
ahead.
I'm
gonna,
I'm
gonna
deviate
from
my
prepared
remarks.
Awesome
as
I've
been
prompted.
Okay.
A
Can
see
this
this
loaf
I
kind
of
graph
here
this
is
this-
is
basically
that
visualization
that
I
was
talking
about.
So
let
me
jump
to.
Let
me
jump
to
the
code
and
I
can
explain
what's
going
on
if
I,
which,
if
I,
have
it
up
sorry
for
the
motion,
sickness
everyone,
let
me
bring
it
up
envious
code
and
show
you
all
so
I've
got
this
app
here
and
this
all
the
magic
is
happening
in
startup,
so
the
undocumented
unsupported
format
that
I
was
talking
about.
There's
a
DI
service
that
you
can
get.
A
A
Your
app's
route
graph,
then
you'll,
have
to
re-enable
synchronous,
I/o
and
right
into
the
response
stream.
So
for
anyone
who's
not
in
the
know,
the
endpoint
data
source
is
where
you
can
find
all
the
routing
information,
and
then
this
thing
will
write
that
graph
and
then
the
way
that
this
is
actually
being
visualized
is
I
have
got
a
graph.
Is
that's
the
name
of
the.
A
Great
package
here
that
somebody
wrote
called
vis,
Jas
mmm-hmm
and
that's
that's
what
I'm
using
to
display
this
and
I'm
just
doing
some
simple
JavaScript
here
to
display
it
so
what's
going
on
in
this
application,
is
I've
got
a
home
controller
with
some
conventional
routes,
sort
of
stuff
going
on
here
and
I've
got
a
weather
controller.
That's
set
up
a
little
bit
more
like
an
API
controller,
but
it's
using
routes.
A
One
of
the
things
that
I
like
to
do
when
I
show
this
off
is
you
can
add,
you
can
uncomment
these.
You
can
uncomment
these
attributes
for
the
other
for
these
other
methods
and
then,
when
I
run,
this
I've
done
comment
throughout
as
well.
When
I
run,
this
you'll
see
sort
of
how
we
build
this
graph.
So
I'll
run
this
again
and
you're
going
to
see
something
more
complicated
than
I
just
showed.
A
Okay,
so
that's
running
go
back
to
my
browser,
so
this
is
what
it
looks
like
before.
I
uncommented
that
thing
you
can
see
sort
of
the
graph
of
what
URLs
are
going
to
match.
You're,
going
to
see
the
weather
yeah
much
more
complicated
now,
and
the
reason
why
things
go
all
crazy
is
when
we
build
decisions
like
what
HD.
A
B
A
B
This
yeah
I
said
why
don't
we
just
get
the
they
have
like
a
definition
there
anyway,
but
because
it's
used
to
generate
the
address
decays
or
it
was
at
one
point.
Okay,
and
so
we
were
like.
Let's
just
pull
in
that
basic
swag
apply,
it
is
swagger,
it
swagger
finals,
so
you
go
swagger
files
and
then
we
generate
the
rap.
We
feed
that
into
the
system,
as
they
generated
me
in
one
roundtable
that
basically
composes
every
URL
for
every
API.
That
exposes
an
editor
thing.
We.
A
A
We
don't
really
find
graphs
that
are
more
than
six
or
seven
nodes,
deep,
it's
more
about
wide
yep
and
we
find
that
when
things
are
wide,
they're
usually
are
wide
because
of
a
branch
on
like
a
static
string,
yeah,
which
is
what's
happening
this
okay.
So
if
you
were
curious
about
this,
if
you
want
to
play
with
it
John,
maybe
you
can
share
the
alkylate
it,
but
it's
in
it's
in
my
to
my
github,
okay.
B
A
A
A
We're
gonna
I
wanted
to
I'm
sure
I'm,
trying
an
approach
for
teaching
and
explaining
kubernetes
here
that
I'm
actually
kind
of
interested
in
feedback
on.
If
this
is
a
good
way
to
understand,
that's
it's
maybe
a
little
conceptual
and
we
will
have
some
examples
and
some
demos
and
stuff
as
well
so
I'm,
just
gonna
I'm
gonna
get
into
it.
So
about
me.
If
you
don't
know
me,
I
work
on
all
that
stuff.
A
A
We're
gonna
be
talking
about
things
that,
if
you're
totally
new
to
this,
you
might
want
to
know
I'm
gonna,
try
and
give
you
a
lot
of
concepts
and
a
lot
of
background
and
maybe
assume
that
even
you're
not
totally
sold
on
the
idea
of
something
like
kubernetes
or
why
it
would
matter
to
you
yeah
we're
not
gonna
get
as
far
as
getting
to
super
super
realistic
things
today.
Just
because
there's
a
lot
there's
a
lot
to
digest.
I
want
to
let
the
concepts
breathe.
A
A
Some
of
the
things
will
whet
your
appetite
a
little
bit
and
give
you
a
taste
and
I'm
happy
to
come
back
and
do
more
if
people
want
to
see
more
practical
than
of
usage
and
keep
the
comments
coming
in
people
are
saying:
they're
happy
for
high-level,
ok,
yeah,
ok,
great
so
I
want
to
do.
I
want
to
do
a
thought
experiment.
So
I
did
I,
didn't
I
studied
physics
in
college
and
one
of
the
things
that
I
really
enjoyed
about
physics,
physics,
Pro
is.
A
B
A
Of
the
things
that
I
always
enjoyed
about
physics
is
that
you
could
use
a
set
of
rules
to
prove
other
rules
right
when
you
start
with
very
simple
rules,
and
then
you
can
derive
very
complex
rules,
you
use
to
solve
real
problems.
I
always
felt
like
by
remembering
the
simpler
things
I
could
kind
of
bluff
my
way
through
anything
into
physics.
We.
B
A
A
B
A
Gonna,
try
and
we're
gonna
try
and
start
from
nothing
and
say
like
well
what?
If,
what
if
your
boss
came
to
you
and
said,
I
want
you
to
I,
want
you
John
or
you
Damien
I,
want
you
to
design
the
micro-services
platform
that
we're
going
to
use
for
all
of
our
production
workloads?
Okay,
right!
What?
If
knife?
Do
you
mind
a
night
yeah.
A
A
So
what
if
you
had
to
design
a
system
for
micro
services
and
we've
got
we've
got
some
of
the
we've
got.
Some
of
the
following
sort
of
inputs
of
requirements
like
needs
to
scale
needs
to
support
many
many
machines.
It
means
to
be
tolerant
of
machine
failures.
So
if
the
machine
crashes
in
the
middle
of
doing
something-
that's
that's
something
you
expect
to
happen.
We
need
to
be
able
to
deal
with
that.
It
needs
to
support
any
language
or
any
workload
type
we
want
to
deploy.
A
Jobs
and
those
kind
of
things-
okay,
it
needs
to
provide
the
things
that
applications
need
and
that's
a
poor
statement
of
requirement,
but
somebody
would
push
back
on
that
in
a
real
discussion
right.
It
needs
to
provide
things
that
people
need
to
be
able
to
write
successful
applications,
so
that
would
be
like
configuration
right
needs
to
provide
configuration
needs
to
provide
logging
should
provide.
Some
kind
of
metrics
capability
should
provide
the
ability
to
deal
with
secret
information
addressing.
A
All
of
the
application
level
concerns
and
I
expect
I
hope
you
still
find
this
useful,
but
I
expect
that
most
of
the
people
that
I'm
speaking
to
you
today
are
probably
in
this
zone
like
you're
in
the
needs
to
provide
things,
applications
need
zone
and
that's
okay,
because
there's
a
flavor
of
there's
a
flavor
of
using
kubernetes,
that's
focused
on
that
a
lot
of
people
have
done
really
hard
work
and
all
the
rest
of
these
things
so
that
you
can
be
a
developer
and
be
productive.
Does
this
include
things
like
fault,
tolerance
and
yeah?
A
B
A
It
does
support
BCE
I
like
to
comment:
that's
real
spicy.
It
needs
to
integrate
with
a
variety
of
tools
and
by
that
I
mean
CLI
ease.
You
should
be
able
to
build
tools
for
this
platform
and
it
needs
to
be
self-healing
like
we
don't
we
don't
want
it
to
be
somebody's
job.
To
say
the
system
is
down.
Remove
the
computer
right,
like
that's
IT
from
20
years
ago,
we're
at
uoit
for
for
now.
A
A
I
had
to
think
about
scaling
and
dealing
with
machine
failures.
Well,
my
first
concern
would
be
I
need
to
be
able
to
add
vm's
to
my
cluster
or
my
group
of
my
group
of
workers.
Right
I
need
to
be
able
to
manage
and
control
those
VM,
so
there
has
to
be
some
concept
of
a
VM
joining
the
cluster.
To
put
it
under
my
control
right,
because
I
have
to
be
able
to
interact
with
it.
I
have
to
be
able
to
put
work
on
that
machine.
Ii,
a
control,
plane,
I
need
a
control
plan.
A
I
need
to
know
some
way
that
that
thing
goes
down
right
and
and
and-
and
that
could
mean
like
well
I-
have
to
run
something
on
that
computer,
because
I
have
to
know
when
it
goes
away
and
the
typical
way
that
you
would
do
that
is
you
just
do
a
heartbeat
right,
so
the
computer
is
gonna.
Tell
you
hey,
I'm,
here,
I'm
happy
everything
is
good
and
if
it
doesn't
check
in
like
you
can
expect
that
it
goes
down.
A
That's
a
well-understood
sort
of
way
to
do
that
sort
of
thing
right
and
that's
the
agent
setting
page
pings
back
and
forth.
So
we
need
some
sort
of
master
controller
who's
going
to
manage
the
nodes.
We
need
some
kind
of
process
running
on
all
the
machines
and
then
the
master
controller
can
update
things
and
the
machines
drop
in
and
drop
out.
So
much.
A
A
A
A
We're
using
the
word
VM
yeah,
the
other.
The
other
sort
of
thing
that
comes
out
of
this
is
well.
If
we
want
to
be
transparent
to
machine
failures,
we
want
to
avoid
anybody
making
decisions
about
where
applications
are
going
to
run,
but
we
want
the
system
to
decide
or
the
applications
run,
because
what
as
much
as
possible,
because
what,
if
you're
a
machine?
What,
if
you
said,
I
really
want
this
to
be
on
machine
and
then
machine
dies
like
you're
in
trouble
right
right.
A
B
B
B
B
A
B
Then
the
whole
idea
that
the
holy
grail
of
DSi
was
that
you
would
say,
take
your
app
model,
which
was
what
the
architecture
put
together
for
that
and
then
throw
it
into
a
system
that
have
been
architected
using
the
white
horse
system
architecture
and
then
it
would
decide.
Oh
you
have
an
app
that
needs
a
web
thing.
I'm
gonna,
take
that
part
and
put
it
here.
Then
you
have
an
app
that
it
like
it's
like
we've
been
chasing
this
concept.
B
B
And
I
remember
that
that
effort
specifically
because
there
was
so
much
marketing
so
much
hype
about
it,
it
never
really
materialized.
Like
a
lot
of
the
a
lot
of
a
lot
of
came
out
of
it,
we
got
the
architecture
tools,
we've
got
the
diagramming
tools,
but
the
actual
self-healing
self-deploying
continuous
deployment,
self-monitoring
aspect
that
Windows
was
going
after
with
any
app
while
all
the
time.
Just
never
really,
you
know
eventuated,
you
know
about
what
you're
gonna
tell
me:
I!
Think
it's!
Okay,
maybe
maybe
it's.
A
A
B
B
A
You
ask
the
question
of
well:
if
I
patch,
one
application
do
I
have
to
patch
them
all.
So
you
don't
you
clearly
don't
want
to
globally
install
SDKs
and
frameworks
and
runtimes
and
tools
on
on
your
machines,
yeah
and
then,
and
then
you
also
have
to
answer
the
question.
If
you
choose
a
strategy
like
that
who's
going
to
do
it
right
right,
so
there's
a
there's
another
way
that
the
industry
has
sort
of
staked
out
here,
which
is
using
virtualization
technologies
like
containers
yeah.
A
You
can
talk
to
other
services
using
DNS
and
networking
that
are
programmable.
As
a
docker
and
other
tools
like
that,
have
these
programmable
Network
backplanes
and
the
the
path
is
sort
of
trod
at
this
point
through
the
industry
in
things
like
making
DNS
updatable
or
making
networks,
little
bridges,
and
things
like
that
that
are
programmable,
that
can
control
traffic
or
or
proxy
traffic.
So
we
can,
we
can.
Basically,
if
we
stick
to
primitives
all
right,
we
can
easily
provide
everything
that
applications
need
by
using
something
like
docker
and
basically
you
have
to
figure
out.
A
A
Kubernetes
is
technology
neutral
docker?
Is
technology
neutral
care
what
technology
you're
using
got
it?
It
all
works
the
same
way
here:
okay,
that
make
sense
yep
and
then,
as
far
as
integrating
with
with
a
variety
of
tools
like
you
need
to
Nick
as
Nick
is
making
me
laugh.
I'm
gonna
have
to
stop
as
far
as
integrating
with
a
lot
of
tools
like
what.
A
What
is
the
way
that
we
know
to
build
things
that
are
toolable,
that
you
can
put
the
UI
on
top
of,
or
you
can
put
a
CLI
on
top
of
well,
you
would
run
web
services,
you
would
run
rest
api's
mm-hmm.
So
if
your
control
plane
and
all
of
the
things
that
you're
you're
putting
in
your
cluster-
like
let's
say
all
the
things
you're
deploying
all
the
things
that
you're
running
can
be
represented
as
a
REST
API
like
you
could
write
tools
for
that,
you
can
write
CL
eyes
for
that.
A
You
can
write
you
eyes
for
that.
So
how
do
you
manage
applications?
Well,
a
crud
or
STP
I
can
manage
application
right
right.
Okay,
the
really
interesting
part
of
this
that
I
think
we're
probably
not
gonna
have
time
to
delve
into
today.
Maybe
if
we
do
four
of
these
well
well,
I
think
it
would
be
just
that.
A
A
Cool
but
you
want
an
extensibility
model.
The
key
is
that
you
want
an
extensibility
model
for
the
control
plane
itself,
and
you
want
that
extensibility
model
to
not
require
you
to
put
code
inside
the
control
plane.
Okay
right,
so
you
want
to
do
X.
You
want
to
support
extensibility,
but
you
want
to
be
external
to
the
actual
control
point
right:
okay,.
B
A
Don't
want
to
have
to
like
write
code
and
go
compile
it
into
kubernetes
and
then
redeploy
your
own
build
of
kubernetes.
You
want
to
extend
the
processes
from
out
our
hand,
side
yep,
and
then
how
do
you
be
self-healing
right?
If
something
is
failing,
we
want
to
be
able
to
restart
it,
and
the
answer
is
you
want
to
limit
the
one
of
one
of
the
strategies
that
you
could
do
use
do?
A
B
A
Does
a
technique
called
desired
state
configuration
that
people
are
familiar
with
right
where
you
represent
all
this,
you
represent
the
desired
state.
You
represent
the
current
state
and
then
you
run
a
series
of
processes
that
iteratively
change
the
world
to
match
what
you
desire.
So
if
you
say,
I
want
three
copies
of
service
a
running
and
there
are
two:
then
you
would
do
a
loop
of
that
reconciliation
process
and
say
we
should
have
one
more
of
these.
A
Please
add
one
more
now
that
that
little
point
here
that
says
this
concept
is
called
reconciliation
and
talking
about
making
the
desired
State
or
making
the
real
estate
match
the
desired
state.
That's
the
hard
part,
like
that's
the
really
hard
part
of
all
of
this,
and
that's
when
we
start
to
talk
about
what
are
some
of
the
actual
tools
that
kubernetes
gives
you
and
how
do
they
work
and
why
are
those
things
useful?
Okay,
because
there's
some
really
complicated
stuff?
That's
in
this
last
bullet
point
yeah.
A
A
bunch
of
other
people
have
worked
on
that
we
don't
we
don't
have
to.
We
could
just
use
it
okay.
So
to
summarize
this,
what
have
we
built?
Well,
we
have
an
agent
running
on
each
node
kubernetes,
that's
called
the
couplet
okay,
we
have
programming
programmable
networking,
that's
the
coop
proxy
and
core
DNS.
Those
are
the
kubernetes
components
that
manage
that
we
have
a
REST
API,
that's
called
the
API
server,
which
is
not
surprising.
We
have
a
highly
available
data
store
to
represent
our
data
and
support
failover.
If
nodes
go
down,
that's
called
a
TD.
A
A
A
And
then
there's
an
there's,
a
reconciliation
process
for
resources,
that's
extensible
and
that's
the
controller
manager
and
any
controllers
that
are
deployed
so
I
took
this
from
the
docs
from
the
kubernetes
Doc's,
and
you
can
see
all
these
things
represented
there.
Basically,
we've
got
on
each
node,
we've
got
it
and
it
could
be
the
amaz
or
they
could
be
physical
machines.
You've
got
a
couplet
and
the
coup
proxy
running
which
do
networking
and
the
couplet
is
responsible
for
ok.
Let
me
actually
start
the
things
that
are
supposed
to
run
on
this
machine.
A
A
B
B
A
Streaming
yeah
a
lot
of
cases,
but
ok
again,
you
can
do
streaming
over
rest.
You
can
do
streaming
with
the
API
server,
any
basically
any
kubernetes
api
in
terms
of
their
rest.
Api
s,
you
can
talk
to
you-
can
talk
to
them
over
like
get
a
streaming
result,
so
negligee
nick's,
asking
from
the
diagram
that
it
looks
like
the
api
server
might
not
be
highly
available.
So
this
is
something
that
I
actually
was
trying
to
find
more
information
about.
As
part
of
preparing
for
this
talk,
I
think
the
answer.
A
The
answer
that
I
have
heard
is
for
people
that
deploy
kubernetes
on
their
own
machines.
So
a
non
hosted
deployment
like.
If
you
didn't
rent
a
kubernetes
cluster
browser
or
from
google
or
from
AWS,
then
there
are
ways
to
deploy
highly
available.
Api
servers
with
failover
I.
Think
if
you
follow
the
default
set
of
getting
started,
steps
to.
B
A
Your
own
cluster
I
think
Nick
is
right
and
you
will
not
have
a
highly
available
API
server.
Ok,
my
understanding
is
that
for
either
at
least
that
the
API
server
is
not
running
in
your
cluster.
It's
sort
of
bridged
to
your
cluster,
so
some
of
these
components,
if
you're
using
a
hosted
kubernetes
like
from
GCP
or
from
Azure
from
somebody
like
that
some
of
the
most
critical
stuff
is
actually
going
to
be
running
somewhere
else,
and
it's
going
to
be
not
even
managed
by
you
like
you,
couldn't
even
like
mess
it
up.
That's
right
right!
A
A
A
I'm
going
to
go
into
some
more
practical
examples
and
we're
mostly
going
to
focus
on
the
things
that
are
on
this
slide
today,
because
those
are
the
things
that
developers
touch
okay
like
when
you
develop
applications,
you're,
not
usually
thinking
about
what
happens
if
the
machine
dies.
Hopefully
that's
not
something
you
have
to
think
about
all
the
time
right,
you're,
usually
thinking
about
how
do
I
get
configuration?
How
do
I
do
logging?
How
do
I
just
write
my
app
code
right
so.
A
Bit
about
using
kubernetes
and
practice,
putting
we're
gonna
run
some
apps
and
we're
going
to
talk
about
what
those
things
are
and
I'm
gonna
sort
of
gently
introduce
like
a
few
more
concepts
cool,
so
we're
now
gonna
run
something
for
the
first
time
here
and
let
me
show
y'all
what
we're
running.
I've
got
a
really
simple
little
espenak
core
application,
and
it
barely
does
anything
at
all
the
thing
that
it
does.
That
I
want
to
draw
your
attention
to
right
here.
Okay,
so
I
was
gonna,
ask.
Is
it
like
a
worker
template
or.
B
A
B
A
B
A
You're
prepared
to
hear
it
a
lot
as
far
as
the
things
you
need
to
kubernetes
this,
you
need
to
produce
a
docker
container
yeah.
You
need
to
push
that
container
somewhere.
It's
not
enough
to
have
it
on
your
machine,
because
your
cluster
is
running
somewhere
else.
You
need
to
have
that
write
it
somewhere
else.
Okay,
and
we'll
talk
about
options
for
how
you
can
get
started,
playing
with
kubernetes
yeah.
B
A
B
B
A
B
A
But
it's
it's
powerful
and
useful,
so
we
deal
with
the
yacht
yep.
This
is
a
script
I'm
not
going
to
run
it
because
I've
already
pushed
this,
but
I'm,
basically
just
building
and
tagging
this
image:
okay
and
I'm
not
going
to
change
the
app
during
these
demos.
My
NBC
London
demos
has
more
where
I
do
actually
change
that.
A
London
there's
a
ton
of
great
material
on
kubernetes.
If
you
want
a
very
dotnet
focused
presentation,
my
NBC
London
one
is
going
to
go
further
and
faster
than
we
go
today,
which
is
a
little
bit
more
of
a
survey.
Yeah
there's
a
ton
of
great
kubernetes
content
out
there,
they're
good
books,
I
would
I
would
heartily
recommend
the
azure
as
a
KS
workshop,
which
you
can
do
even
if
you're,
not
using
Azure,
you
can
do
most
of
even
if
you're,
not
using
Azure
I
would
super
recommend
that
okay.
A
But
let
me
let
me
play
with
this
a
little
bit
yep
and
the
first
thing
that
I'm
going
to
do
is
I'm
going
to
deploy
this
application
and
we're
going
to
see
it
run
so
I'm
gonna
do
something
that
I,
don't
I'm
gonna
do
something
that
I.
Don't
super
recommend
that
you
do.
This
is
not
the
terminal
I
wanted.
This
is
the
terminal
I
wanna
do
I'm
gonna,
do
something
that
I.
Don't
super
actually
recommend
that
you
do
so.
A
More
so
people
that
are
kubernetes
mavens
out
there
might
might
be
distraught
by
this,
but
that's
okay.
This
relax
I'm
trying
to
introduce
the
concepts
new,
so
coop
control
is
looking
online.
The
communities
I'm
going
to
be
doing
a
lot
of
this
stuff
at
the
command
line.
There
are
other
things
but
I
think
it's
the
most
basic
way
to
learn.
I'll
show
some
of
es
codes
UI
as
well,
which
is
really
good.
Okay
and
then
the
other
thing
I
want
to
mention
is
a
m--
on
Mac.
You
don't
have
to
be
on
Mac.
A
You
can
do
this
on
Windows.
You
can
do
this
on
anything.
I
think
that
the
experience
of
using
kubernetes
from
windows
is
pretty
good.
The
experience
of
trying
to
run
in
kubernetes
on
your
Windows
machine
might
not
be
good.
Okay,
I've
heard
people
having
success
in
doing
it
with
WSL
I
had
not
personally
tried.
Ok,
but
running
from
Windows
is
fine.
Controlling
it
from
Windows
and
stuff
is
fine
yeah,
so
I've
got
a
bunch
of
yellow
files
here,
so
f
is
Dutch.
A
A
Sorry
I
got
that
wrong.
That's
great!
That's
really
embarrassing!
Yeah,
there's
thing
wrong:
coop
CTL
apply
apply,
is
the
command
for
do
this
thing
to
the
cluster.
Okay
from
this
yellow
file
got
it
and
so
I'm
gonna
go
ahead
and
do
apply
and
it
says
pod
kubernetes
app
created,
so
I
can
then
say:
coop
control
wait
did
I
space
out.
Did
we
see
what
that
was.
A
Will
see
coop
control
and
I'm
going
to
say
get
pods
because
I
just
created
the
pond
and
you
can
see
that
I've
got
kubernetes
app,
one
of
one
ready
status,
running
15
seconds
and
so
on?
Okay!
So
let's,
let's
flip
over
and
let's
look
at
that
yep.
So
going
back
to
I'm
gonna
close
some
things
that
are
in
the
way
in
the
way
sorry
I
opened
a
bunch
of
different
windows
and.
A
I
have
far
more
windows
than
I
need,
even
though
I'm
not
using
with
those
okay.
So
here's
my
pod
definition
and
I
have
done
like
the
most
minimal
dumbest
thing
possible.
Okay,
this
doesn't
super,
look
like
things,
you're
gonna
use
in
production
yeah,
but
this
is
how
much
this
is,
how
things
look
like
when
you
gonna
strip
them
down
to
the
core,
so
I'm
going
to
talk
about.
What's
here,
you
can
basically
ignore
this
for
now.
A
Okay,
think
of
think
of
this
stuff
up
here
at
least
for
right
now,
is
kind
of
like
your
public
static
void,
main
of
kubernetes
right,
like
you
need
to
you
need
to
declare
you
need
to
declare
some
stuff
here,
but
the
real
meat
and
potatoes
of
these
kubernetes
objects
is
always
inside
this
spec
field.
The
specification
of
the
desired
behavior
of
the
pod
as
the
dock
so
elegantly
say.
Okay
and
in
here
all
I
really
have
to
do.
I
keep
hovering
stuff
for
emphasis,
and
it
brings
up
the
tooltip
right.
B
A
A
A
A
There
are
concepts
for
pods
called
like
containers
and
shutdown
containers,
so
you
could
say:
I
want
to
run
this
container
before
you
start
my
container
to
prepare
some
copy,
some
data
right
with
something
like
that
right
and
I
want
to
do
that
before
my
app
even
starts.
That
sounds
really
handy,
so
you
do.
You
could
do
all
kinds
of
stuff
yeah
to
initialize
before
and
what's
what's
cool
about.
B
A
So
there
there's
a
lot
of
flexibility
built
into
the
system
for
how
you
do
these
kind
of
things,
so
some
so
that's
kind
of
cool.
Now,
if
I
wanted
to
talk
to
this
pod,
how
would
I
talk
to
this
pod
is
I'm
running
I,
said
I'm
running
a
website.
I
can
find
out
more
information
about
this,
so
if
I
say,
coop
control
get
pods
and
I
can
say
output
wide.
This
will
just
give
me
more
information.
Okay
right,
so
you
can
see.
I've
got
I've
got
a
little
bit
more
information.
A
I
know
what
note
it's
running
on.
I
know
what
the
IP
address
is
and
stuff
like
that
and
I've
done
a
little
bit
of
networking
before
so
I
see
10,
244
149
and
they
say
that's
not
a
routable
IP
address.
I
can't
talk
to
that
all
right,
because
I
haven't
said
anything
about
wanting
to
talk
to
this
pod
I.
Just.
A
Made
me
why,
okay
now,
if
I
want
to
talk
to
it,
there's
a
couple
ways
that
I
could
do
that.
Let's
say
that
I
wanted
to
poke
this
thing
for
the
purpose
of
like
troubleshooting.
One
of
the
ways
that
I
can
do
that
is
I
have
features
built
into
coop
control,
for
that,
so
I
can
say,
coop
control,
port
forward
and
then
I
can
say,
pod
slash
and
then
the
name
of
the
pod
which
is
kubernetes
app
and
then
what
comes
after
that
is
the
local
port.
A
A
Because
of
this,
what
it's
reflecting
is
it's
reflecting
the
IP
address
of
my
machine,
which
is
where
I
hit
it
from
and
I
can
see
that
the
host
name
is
kubernetes
app,
so
the
the
pod
actually
gets
its
own
host
name
yeah,
it
self
reports,
the
name
of
the
pod
and
my
configuration
value
is
not
anything
because
I
haven't
set
it
to
anything.
Okay,
that's
for
later
so.
B
A
Okay,
I'm
going
to
show
a
couple
other
tricks
here
because
you
might
be
saying
I'm
confused
by
this
and
I
don't
understand.
What's
going
on
at
the
CLI
and
I
gosh
I
can't
remember
all
these
things
right,
which
I
think
you
can.
You
know
if,
with
practice,
I
look
a
lot
of
stuff
up
with
kubernetes
stone.
The
reason
I
zoomed
out
is
for
you
to
see
this
icon
here
and.
A
You
go
get
the
kubernetes
extension
4
vs
code,
I.
Think
the
kubernetes
extension
30s
code
is
excellent.
I
recommend
anybody
doing
doctor
or
courier
Nettie's
go
get
these
extensions
and
use
them.
They're
great
I've
got
a
couple
clusters
here.
You
can
ignore
those.
Let's
focus
on
this
NDC
demo,
one
and
let's
look
at
what's
here
so
I
go
to
work,
loads
and
I
created
the
pod
and
I
can
open.
A
My
pod
and
I
can
see
kubernetes
app
in
there
and
if
there
are
multiple
containers,
this
would
say
like
one
out
of
two
out
of
two
ORS
right
that
because,
but
there's
just
one
and
I
would
see
more
if
there
were
multiple
containers
running
here.
So
what
I
can
do
with
this?
In
my
context,
menu-
and
it's
a
little
bit
hard
to
see,
but
I
can
do
a
lot
of
stuff
here
in
the
context
menu.
That's
useful
I
can
create
a
terminal
running
in
this
pod
because
it
is
literally
just
a
remote
Linux.
Oh.
A
A
One
of
the
things
that
I
use
this
for
all
the
time
is
I
always
get
the
command
wrong
for
logs
is
following
the
logs.
Okay
and
this
app
isn't
logging
anything.
So
you
just
seen
what
came
out
from
startup
right.
You
can
follow
the
logs.
You
can
do
some
filtering
here
and
they've
got
a
nice
little
UI,
for
it
I'm
pretty
sure
that
the
debug
option
does
not
work
for
dotnet
I,
think
it
just
works
for
JavaScript
at
this
point.
A
Things
like
that,
Wow,
okay,
the
other
thing
that
I
would
sort
of
highlight,
is
and
I'm
not
going
to
explain
this,
because
it's
it's
complicated,
but
over
here,
just
by
clicking
on
this
thing,
I've
got
like
way
more
data
and
you
can
see
that
this
kind
of
looks
like
the
manifest
that
me
Road,
but
not
really,
there's
a
lot
more
right,
so
we
said
Rhino
our
kubernetes
app
is
my
is
my
image.
It's
got
the
name
of
that
and
there's
like
a
whole
lot
more
stuff
here,
yeah
where'd
that
come
from
and
and
remember.
A
A
Of
this
thing
in
yellow
yeah,
you
can
do
the
same
with
Jason
as
well.
Okay,
you
could
output
this
in
yellow
format,
and
so
you
can
see
basically
everything
about
the
state
of
this
object
just
from
sort
of
going
to
it.
So
you
can
see
in
a
lot
of
these
cases
like
this
image
pull
policy,
always
that
represents
a
default
being
applied
to
this
I
didn't.
A
I
could
have
right,
in
which
case
I
would
see
what
I
specified
here.
Likewise
you're,
seeing
some
sort
of
like
kubernetes
magic
here
right
like
there's
a
there's,
a
volume
mount
there's
a
file
share
here
with
a
service
account
and
a
data
token,
and
it's
read-only
and
okay.
So
you
can
see
a
lot
of
the
there's
a
lot
of
guts
here
and
we're
not
gonna,
try
and
explain
all
of
them
right
now,
because
that's
not
an
intro
for
beginners.
A
B
A
A
But
the
key
thing
about
described
that's
really
useful
when
you're
troubleshooting,
something
like
if
you
you're
doing
kubernetes
experiments
and
you're
falling
on
your
face
and
you're
angry
and
you're
gonna
like
smash
a
Windows
computer
yeah
like
what
you
could
do
is
do
a
describe
and
then
you'll
see
all
the
events
that
happen
and
chances
are.
If
something
is
wrong,
you
can't
understand
why
the
thing.
A
A
So
that's
those
are
some
of
the
really
really
basic
debugging
tools
and
diagnostics
tools
that
you're
gonna
want
to
have
if
you're
doing
this,
so
let's
get
I
keep
going
to
the
things
that
are
not
useful.
Let's
get
a
slightly
more
realistic,
I'm
gonna.
Remove
this
there's
a
time
check:
okay,
okay,
I'm
gonna
speed
up
a
little
bit,
but
I'm
gonna,
I'm
gonna
go
ahead
and
remove
this
and
the
way
you
do
that
is,
you
say,
delete
and
then
you
can
pass
in
the
path
to
what
you're
doing
here.
A
A
Might
have
more
pods
right,
it
might
have,
or
you
might
have
more
stuff,
so
speak
up
more
stuff.
Let's
have
more
stuff
yeah.
So
I
mentioned
that
this
isn't
really
the
practices
you
would
follow
if
you're
somebody
doing
kubernetes
like
you,
probably
won't
directly
use
pods
and
the
reason
why
you
won't
directly
use
pods
is
that
they're
a
low-level
permitted.
Ok
right
so
pods
are
like
the
sort
of
like
fabric
of
the
thing.
There
are
lots
of
higher-level
concepts
that
create
pods
that
you
use
instead,
so
one
of
those
higher-level
concepts
is
called
the
deployment.
A
A
deployment
is
generally
the
thing
that
you
use
when
you
have
a
long-running
service.
There's
another
there's
another
high-level
concept
called
the
job,
which
is
the
thing
you
use
when
you
have
a
short
running
service.
Ok,
something
that's
going
to
do
work
and
go
away.
There's
also
one
called
cron
job,
which
is
like
well
crowd.
A
B
B
A
About
the
concept
of
we
talked
about
the
concept
of
reconciliation
or
controllers,
and
things
like
that
well,
pod
is
built
into
kubernetes
at
a
very
fundamental
level.
Mm-Hmm
deployment
is
built
into
kubernetes
at
a
slightly
higher
level
or
because
there's
things
running
inside
the
cluster
that
turn
deployments
into
pods.
Okay.
So
let's
look
at
our
deployment
and
I
want
to
say
that
from
here
on
down,
you
can
ignore
everything,
that's
below
the
dashes
for
now
from
here
on
down
right
now.
It
basically
looks
the
same
as
what
we
just
did
right.
We
have
a
name.
A
A
Well,
I
expect
to
get
traffic
on
80
from
outside
the
pod,
make
it
available
for
just
networking.
You
know
okay,
but
then
there's
way
more
stuff
yeah,
so
the
signal-to-noise
ratio
has
gone
way
up
now
that
we're
talking
about
a
deployment
instead
of
a
pod
and
I'm
gonna
unpack
I'm
gonna,
deploy
this
you'll
notice.
I've
said
yeah.
B
A
B
A
Am
so
I've
got
a
deployment
I'll
go
ahead
and
create
that
and
I've
also
got
a
service
which
we'll
talk
about
in
a
little
bit.
So
if
I
say
cube,
control
gets
pods
again.
You'll
see
that
there
are
now
three
okay
and
they've
got
kind
of
a
salty
name
right,
like
somebody's
put
a
gooood
in
these
names
here.
So
that's
one
area
where
doctor
is
a
little
more
friendly
because
it
calls
them
like
swashbuckling
pirate
or
what
yeah
a
memorable
name
yeah,
but.
A
Techniques
that
help
you
with
that
I'll
spend
a
little
bit
of
time
on
so
one
of
the
things
that's
cool
about
this
or
I
guess
why
why
we
have
all
this
stuff
is
the
secret
is
in
this
template
node
mm-hmm,
because
inside
of
this
inside
of
this
deployment
is
contained.
What
was
in
our
pod
yeah,
basically
right,
I
thought
that
was
familiar
so.
A
Here,
like
every
I
added
the
container
port,
so
we
can
ignore
that
button.
Everything
else
about
this,
except
for
the
API
version
and
the
kind
it's
literally
just
the
same
stuff,
all
right
as
the
pod
and
the
reason
is
pretty
simple-
is
that
the
deployment
is
literally
the
template
element
of
the
deployment.
Oh,
it's.
A
For
making
pods
yeah
right
and
the
thing
is
you
don't
specify
a
name
here,
because
you
can't
have
three
pods
with
the
same
game
right
a
lot
right.
So
what
you
specify
instead
is
something
called
a
label
which
we'll
get
to
in
a
moment.
Okay,
but
the
way
to
sort
of
think
about
a
deployment
is
a
deployment
is
like
well
for
each
replica
I'm
going
to
evaluate
this
template
and
I'm
gonna
make
one
right.
B
B
A
What
are
what
are
labels?
Well,
you
might
have
figured
it
out
labels
or
key
value
pairs
that
are
for
matching
and
querying
and
Association
okay.
So
one
of
the
things
that
I
could
do
is
I
could
come
here
and
I
could
say
a
coop
control
get
pod
and
I
could
paste
in
one
of
these
names
all
right
and
then
I'm.
Just
talking
to
this
pod,
but
I
can
also
say:
coop
control
get
pods
and
I
could
put
in
a
label,
could
edit
the
label
and
get
all
the.
So
let.
A
B
B
A
B
A
So
what
are
the
common
things
that
people
do
with
labels
is,
let's
say,
you've
got
an
overall
application,
that's
made
of
like
10
or
15
services.
Yeah
right,
you
could
factor
that
application
into
you've
got
one
application
with
10
services
yeah,
you
could
give
them
all
a
common
label
yep
right
and
then
you
could
give
each
one
its
own
label
as
well,
so
that
you
can
query
for
how
are
the
10
things
doing
here
or
you.
B
A
A
It's
really
an
arbitrary
grouping
construct
for
you
to
do
what
you
want
in
the
case
of
a
deployment
you
end
up
with
this
boilerplate
that
you'll
see
in
basically
any
deployment.
Ok,
I
have
to
define
a
label
and
you
have
to
define
a
selector.
So
the
other
thing
that's
in
this
file
that
I
talked
to
haven't
really
addressed.
Yet
it's
service,
a
service.
You
can
think
of
a
service
as
being
like
a
networking.
Only
concept,
okay,.
A
Represent
something
that
you
can
route
traffic
to
mm-hm
and
they're.
Their
job
is
to
create
DNS
entries,
ok,
so
within
the
cluster,
if
I'm
running
in
kubernetes
and
I
tried
to
talk
to
kubernetes
app,
just
the
hostname
kubernetes
app
that
would
resolve
ok
right,
there's
also
a
longer
form
of
like
kubernetes
app
dot
service,
dot,
namespace.
B
B
A
A
variety
of
different
dns
names
that
now
exist
because
I've
declared
this
service.
Ok,
there's
a
bunch
of
different
types
of
services,
so
this
is
a
load
balancer
service,
which
means
use
the
load
balancer
of
your
cloud
to
route
traffic
to
this
service.
Oh
ok,
right
which
this
is
this
again,
is
not
a
practice
that
people
super
do
in
production.
It's
useful
for
experimentation
and
for
demo,
so
load
balancer
isn't
built-in
directly
abase
its
load.
Balancer
is
built
into
kubernetes,
object,
model
and
description.
A
However,
if
you
took,
if
you
went
to
the
kubernetes
repo
learned
it
built
it
deployed
it,
it
would
not
include
a
load
balancer
got
in.
You
could
set
one
up.
You
could
set
up
nginx
as
a
load
balancer
or
something
like
that
yep
or
H
a
proxy
as
a
load
balancer,
but
typically,
if
you're
using
a
hosted,
kubernetes
you're
gonna
get
your
load.
Balancer
is
going
to
be
whatever
that
cloud
platform
provide.
Okay,
so
one
of
the
things
that
I
can
do
here
is
I,
haven't
been
stalling
from
time.
I
promise.
A
Another
cool
trick
that
we
can
do
with
this
is
I
have
got
a
special
like
sort
of
VIP
endpoint
in
this
application.
So
what
was
my
I?
Have
my
I?
Don't?
Have
it
I'll?
Get
it
again,
so
control
get
service?
Let's
get
my
external
IP
address,
so
we
can
go
to
this,
whereas
my
browser
we
can
go
to
this
and
we're
now
on
the
public
facing
version
of
this
website.
Let's
do
something
special:
let's
do
something
that
only
only
us
cool
kids
know.
This
is
the
right
place
of
them.
Cube
control,
get
pods
W.
A
B
B
A
A
B
B
A
Yellow-
and
this
is
you
can
sort
of
think
of
this
as
like
the
standard
prelude,
so
everything
has
got
an
API
version.
Everything
has
got
a
kind.
Everything
has
got
a
metadata
section.
The
things
that
you
can
define
in
the
metadata
section
are
like
the
name,
the
namespace,
the
labels.
Labels
are
key
value,
pairs
for
people,
and
then
you
have
annotations.
Annotations
are
key
value
pairs
for
machines.
Okay,
why
are
they
different?
I?
Don't
know,
but
the
idea
is
that
labels
are
things
that
are
human,
meaningful
annotations
might
not
be
human
I.
A
B
A
B
B
A
That
that
thing
is
done
right,
but
if
you
want
to
be
able
to
detect
failure
conditions
that
don't
don't
result
in
crashing
the
process,
you
need
a
health
generally
something
more
active
at
a
health
check.
So
typically,
what
people
will
do
is
HTTP
there's
another
way.
You
can
do
it.
If
you
don't
want
to
have
an
HTTP
server.
They
also
have
a
built
in
feature
where
it
can
just
connect
to
a
port.
So
you
say
you
open
TCP
port.
A
Whatever
haven't
you
accept
connections
on
it,
but
don't
do
anything
with
those
connections
yeah
that
will
work
as
well.
Okay,
they
have
built
in
support
for
that,
and
this
is
called
a
readiness
probe.
They
have
another
thing
here
called
liveness
probe
and
the
difference
between
these
two
is
that
liveness
probe
means
don't
shut
me
down.
I'm,
okay,
oh
right,
that's
otherwise!
All
readiness,
if
you're,
not
ready,
it's
going
to
kill
you.
B
A
A
Traffic,
so
you
know
so
some
of
the
things
that
you
can
do
that
people
have
done
is
you
can
have
a
readiness
probe
that
says
I
need
to
read
this
big
file
or
I
need
to
initialize
all
this
data
from
the
database.
Mm-Hmm
and
don't
start
don't
start
sending
me
traffic
until
I've
until
I've
read
all
that
data
okay
and
healthcheck
supports
that.
We've
documented
that
pattern.
A
You
can
have
two
health
checks:
endpoints
that
have
different
criteria,
for
instance
yeah,
okay
or
you
could
say
you
know
above
a
certain
level
of
CPU
usage,
stop
sending
me
traffic,
which
is
not
something
I'd
recommend
there
are
better
ways
to
do
that.
The
other
thing
that
I'm
doing
here
is
a
mapping
in
some
configuration.
So
kubernetes
has
a
configuration
system.
You
can
define
configuration
separately
from
your
deployments
and
your
your
your
services
and
things
like
that,
and
then
you
can
map
it
into
your
deployments
and
services.
A
B
B
A
The
configuration
concept
there's
also
a
secret
concept,
so
this
is
an
example
of
a
config
map
during
a
DS
config
map
over
here,
and
you
can
I've
literally
put
a
JSON
file
yeah.
This
is
an
example
of
a
kubernetes
config
map.
You
can
also
have
what's
called
a
kubernetes
secret
now
the
big
difference
between
secrets
and
config
maps
by
default
is
that
secrets
support
binary
data
configuration
does
not
so
configuration.
A
B
A
A
B
A
It
so
those
are
some
of
the
kinds
of
things
that
I'm
doing
here.
There's
a
lot
more,
you
can
do
you
can
set,
you
can
set
resource
names
and
thing
or
you
can
set
resource
limits
and
things
like
that,
which
I
just
spent
a
lot
of
time
talking
about
with
some
people.
So,
let's
see
what
it's
looked
like,
we
need
to
see
that
environment.
A
This
so
goop
control
apply.
Let's
apply
our
config
first
there's
a
neat
thing
that
I'm
not
going
to
demo
here,
which
is
that
if
you
try
to
because
I'm
using
a
volume
mapping
for
config,
if
you
try
to
deploy
this
without
having
applied
the
config,
it
will
halt,
it
will
basically
say
no
I'm,
not
ready.
So
I
won't
throw
up
an
error
when
I
do
it
it'll
just
sit
there
and
not
do
anything
and
then
I
think
after
a
certain
amount
of
time,
it
actually
goes
to
a
failed
state.
What
I
call
this
I
call?
A
This
I
have
very
creative
when
I
created
these
things
deployment
more,
please
more
one
of
the
things
that
you
can
do
because
it's
desired
state
configuration
I,
didn't
delete
my
deployment.
Oh
right,
I
don't
have
to
yeah.
So
one
of
the
things
that
I
can
do
is
I
just
deployed
over
it
and
says
kubernetes
app
configuring.
If
I
watch
the
deployment
by
the
way
get
deployment,
because
these
pods
don't
know
the
history
right,
EJ,
God,.
B
A
A
See
this
in
in
flight
yeah,
but
what's
actually
happening
here,
is
because
I
set
the
health
check
to
run
twice
with
the
ten-second
delay.
Mm-Hmm,
it's
actually
taking
20
seconds
to
bring
up
each
one
right,
so
you
can
see
that
what
we
had
four
things
running
to
are
up
to
date,
then
we
had
three
running
and
two
are
up
to
date.
Now
we
have
three
running
and
all
three
are
up
to
date:
okay,.
A
B
A
A
Here,
which
I
hope
is
working
I
was
trying
to
mess
with
logging
via
config
and
I
got
it
working,
but
I
didn't
try
it
twice.
So
we're
not
sure
if
it's
really
working
and
what
I
wanted
to
see
is
I.
Basically,
in
that
config
file,
I
injected
a
bunch
of
configuration
for
logging
to
make
it
like
super
verbose
mode.
Yeah,
let's
see
if
we
actually,
let's
see
if
we
actually
got
it
yeah,
we
actually
got
it.
So
we've
got
all
this
super
verbose
logging
happening
because
I.
B
A
Of
the
things
about
config
files
as
well,
that
I
would
I
would
sort
of
mention.
How
do
you
choose
between
a
config
file
and
environment
variable?
Well,
files
are
a
little
bit
more
painful
to
use
because
you
have
to
write
more
Emel
and
you
have
to
choose
what
path
they're
going
to,
and
then
you
have
to
put
code
in
the
app
to
read
that
thing
right.
We're
we've
been
to
adding
a
feature
with
an
asp
net,
and
it's
not
clear.
A
Out
of
layer
of
indirection,
the
reason
why
that's
important
is
environment
variables
are
defined
when
the
process
starts,
so
you
can't
change
an
environment
variable
while
the
app
is
running,
but
you
can't
change
a
file
and
most
of
our
file
based
config
providers
know
how
to
do
that.
The
other
thing
is
environment.
Variables
are
less
good
for
secrets
than
files,
because.
B
A
B
A
A
So
so
some
ideas
that
people
are
saying
that
seem
like
good
would
be
to
do
another
one
of
these
that
now
we've
got
a
conceptual
there
with
an
introduction.
Let's
do
let's
do
a
walk-through
of
something
more
practical
yeah.
It
would
be
great
to
see
to
like
yeah,
with
like
an
asp
net
core
app
and
using
some
of
that
integration
and,
like
you
know,
maybe
different
tiers
and
a
data
back
end.