►
From YouTube: Pods, Proxies & Ports, Oh My!
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
A
Today,
I'm
going
to
be
talking
to
you
about
various
ways
of
accessing
pods
couple
has
provides
various
means
of
getting
access
to
a
pod
I'll
be
talking
about
those,
and
this
is
going
to
be
a
wide-ranging
presentation
and
my
focus
is
going
to
be
on
covering
most
all
the
ways
there
are
to
do
that
I'll,
probably
almost
all
of
these
will
be
familiar.
A
What
I'm
hoping
is
is
you'll,
pick
up
little
bits
and
pieces
that
you
may
not
have
known
along
the
way,
so
this
will
be
a
good
overview
of
the
available
methods,
as
well
as
getting
into
some
details.
That
may
be
interesting,
so
pods
have
various
access
points
using
couple.
A
They
can
be
accessed
through
the
api
server
I'll,
be
talking
about
methods
of
doing
that
I'll,
be
talking
about
using
port
forwarding
to
access
pod
ports
directly
and
I'll,
be
talking
about
the
standard
streams
standard
in
standard
out
and
standard
error.
I'll
be
talking
a
little
bit
about
logs
as
well,
so
just
just
for
complete
coverage.
What
I'll
be
talking
about
first,
is
the
api
server
proxy.
The
api
server
proxy
allows
direct
access
to
the
api
server
by
http
proxy.
A
A
This
is
similar
to
using
raw
the
wrought
option
on
coop
cuddle
if
you're
not
familiar
with
it.
That's
okay,
I'll
be
talking
about
that
more.
This
presentation
is
going
to
use
plenty
of
command
examples.
These
command
examples
are
going
to
be
executed
against
a
deployment
and
a
service
here.
I've
provided
the
yaml
for
both
the
deployment
and
the
service
and
here's
the
deployment.
A
A
very
simple
x
engine
x
deployment
with
an
nginx
container.
The
service
allows
network
access
to
that
nginx
container
on
port
80..
Here's
service
yaml.
For
that
the
first
topic
I'm
going
to
talk
about
is
the
api
server
proxy.
The
api
server
proxy
allows
direct
access
to
the
api
server
via
http
connection
from
a
local
port.
A
This
is
very
useful
for
debugging
or
executing
commands
that
are
in
alpha
beta
and
not
fully
supported
in
couple
forward.
Connections
are
forwarded
to
connections
are
automatically
amended
with
authentication
state,
so
there's
no
need
to
provide
additional
authentication
when
forwarding
connections.
A
Here's
how
you
start
up
an
api
server
proxy.
It's
very
simp,
simple,
kubeco
proxy.
There
are
other
options
here
for
specifying
local
ports
or
hosts
to
listen
to,
in
this
case,
we're
just
going
to
go
with
the
default
options.
This
will
start
up
a
proxy
that
listens
on
8
port
8001
on
localhost
in
this
example
below
I'm
testing
it
out
by
getting
the
root
for
the
api
server,
which
will
show
me
a
list
of
paths
that
are
available
on
the
api
server.
A
So
here
I'm
getting
all
the
name
spaces
listed
as
a
table,
and
here
I
can
do
an
equivalent
by
accessing
localhost,
8001
api,
v1,
namespaces
and
that
will
list
out
the
namespaces.
A
A
A
It
has
http
so
for
services,
this
http
that's
on
the
end,
is
the
service
name,
the
port,
rather
the
port
name
in
the
service
that
I
want
to
proxy
through
at
the
end,
you
put
slash
proxy,
and
that
is
the
api
server's
indication
that
you
wish
to
proxy
through
this
port,
as
you
can
see
below
once
I
proxy
through
that
port,
it's
actually
accessing
the
nginx
server,
that's
behind
that
service.
A
A
At
the
end
of
that
proxy
url,
you
can
add
any
other
additional
url
path
options,
as
well
as
a
query
parameters.
In
the
case
that
I
showed
you
in
this
case,
it's
yaml.
I
showed
you
earlier
where
the
port
has
a
name
http,
and
you
can
see
that
that's
the
same
that
maps
the
same
name,
that's
in
the
url,
here's
the
full
form
for
that,
if
you're
using
a
api
server
proxy
and
you
wish
to
access
a
specific
service
port.
This
is
how
you'd
go
about
doing
it
again.
A
A
So,
similarly,
if
we
actually
go
and
look
at
that
pod,
we
can
see
that
the
container
port
is
exposed
on
port
80
and
that's
how
I
would
get
access
to
it.
A
So
couple
proxy
offers
the
ability
to
access
resource
definitions
within
the
kubernetes
api
in
the
kubernetes
api
server.
Not
only
that,
but
it
allows
you
to
access
pods
and
service
endpoints
very
useful
for
debugging
I'll
talk
a
little
bit
about
that
next,
so
you
can
use
the
couple
proxy
to
get
access
to
the
api
server
and
basically
use
it
for
debugging
and
something
that's
valuable
is
to
use
a
couple.
V9
v
is
the
verbose
option
and
then
followed
by
an
integer,
and
you
can
specify
an
integer
always
from
0
to
9.
A
the
lower
the
value,
the
less
debugging
information,
the
higher
the
value,
the
more
debugging
information
what's
special
about
v9
is
that
it
outputs
curl
commands
that
can
then
be
modified
and
used
to
access
resources
through
proxy
server.
So
in
this
example,
I'm
simply
getting
all
the
pods
from
all
the
name
spaces
and
I'm
specifying
verbose9
on
the
command
line.
Here's
the
output
from
that-
and
this
is
the
first
few
lines
here-
are
all
debugging
output
and
what's
buried
in
there
is
a
curl
command.
A
So
this
curl
command
is
the
curl
is
the
equivalent.
If,
if
cube
cuddle
was
using
curl,
it
would
be
the
occur
equivalent
of
the
url
or
the
endpoint
that
it
accessed
in
the
in
the
api
server.
A
This
can
be
modified
and
used
to
then
execute
that
against
the
api
server.
Once
again,
you
would
set
up
a
an
api
server
proxy
in
order
to
get
access
to
that.
So
it's
very
useful
to
use
this
in
conjunction
with
kubecuttle,
to
v9,
to
see
what
the
urls
that
the
coupe
cuddle
is
actually
accessing
in
the
api
server,
and
then
you
can
do
some
debugging
using
the
proxy
so.
A
A
So
that's
that
is
it
for
the
api
server
proxy.
What
I
wanted
to
talk
to
you
about
next
is
something
that's
similar,
which
is
the
raw
option
on
couple.
A
Get
create
and
delete
all
offer
dash
dash
raw
option.
This
allows
you
to
submit
api
server
urls
using
kubecuttle,
and
it
provides
json
output.
So
I'll
show
you
here's
an
example
of
using
dash
dash
raw
here,
I'm
using
kucoget,
but
instead
of
telling
it
what
resource
I'm
looking
for,
I'm
going
to
give
it
a
dash
dash
raw
option,
and
then
this
should
look
familiar
the
api,
v1
namespaces.
A
This
is
going
to
list
all
the
namespaces
that
are
available
in
my
api
server.
If
you're
not
familiar
with
jq,
I
recommend
you
get
familiar
with
it
here.
I'm
piping
it
through
jq.
This
is
just
going
to
format.
The
json
for
me
nicely
and
below
you'll
see
that
I'm
getting
a
list
of
namespaces
out.
A
A
A
So
here
we
go.
If
I
go
ahead
and
I
can
go
ahead
and
cuddle
delete,
I
use
the
raw
option
and
specify
the
api
server
url
for
the
resource
that
I'd
like
to
delete.
I
have
to
specify
a
full
name
here
and
in
this
case,
is
I'm
gonna
delete
the
nginx
service.
So
I
get
the
json
response
that
says
that
it
worked.
A
I
can
then
go
ahead
and
recreate
that
using
coop
cuddle
create
dash
dash
raw
specify
the
the
resource
name
or
resource
type
that
I'd
like
to
create,
give
it
the
file
for
the
json
and
it'll
create
it
and
if
it
successfully
creates
it
it'll
output.
The
service
back
to
me.
A
A
You
can
add
url,
query
arguments
to
do
things
like
limit
the
number
of
records
that
come
back,
set
continuation
tokens
so
on
and
so
forth.
So
this
is
a
very
good
tool
to
have
in
your
toolbox.
A
So
that's
that's
pretty
much
covers
it
in
terms
of
ways
to
access
the
api
server
or
the
apis
using
couple
either
by
the
api
api
server
proxy
or
by
using
raw
that'll,
give
you
access
to
basically
any
endpoint
there
on
the
api
server
for
getting
resource
metadata,
there's
another
way
of
accessing
your
ports
and
services
and,
of
course,
that's
through
port
forwarding.
I'm
sure
most
of
you
have
already
used
this.
A
I'm
going
to
be
giving
you
a
very
short
overview
of
port
forwarding,
basically
for
completeness
to
show
you
that
it's
here
and
discuss
a
couple
of
limitations
of
it:
port
forwarding
forwards,
tcp
ports
to
pods
and
services
containers.
Specifically,
it
can
only
do
tcp,
it
can't
do
udp.
A
This
is
really
really
handy
if
you
want
to
browse
the
contents
using
a
web
browser
in
one
of
your
pods
or
containers.
So
it's
handy
and
you
can
use
this
to
pass
through
any
tcp
protocol.
Not
just
http
and
https,
as
you
would
get
with
the
the
api
server
proxy
http
and
https
endpoints,
so
any
tcp
protocol
will
work.
A
This
is
fairly
straightforward.
To
set
up
it's
basically
very
similar
in
operation
to
api.
Excuse
me:
coop,
cuddle,
proxy
coupe,
cuddle
port
forwarding
here
it
is
all
you
do,
is
specify
the
pod
or
the
service
which
you
wish
to
access
on
the
other
end.
This
is
an
example
with
a
pod
and
the
target
port
that
you
wish
colon
and
the
target
port
that
you
wish
to
access.
In
this
case,
port
80.
A
note
I'm
it's
I'm
not
specifying
a
number.
On
the
left
hand
side,
I'm
only
specifying
a
number
on
the
right
hand,
side
of
the
colon
which
is
port
80..
What
this
will
do
is
it'll
assign
a
random
local
port
to
forward
to
that
port
80.
and,
in
this
case,
that
random
local
port
that
I
identified
was
54.6.
A
So
here
it's
porting
for
port
forwarding
that
randomly
selected
port
to
port
80..
I
could
specify
a
port
on
the
left
hand
side,
in
which
case
it
would
forward
that
local
port
to
port
80.,
I'm
not
going
to
be
discussing
any
of
the
details
in
the
options
again.
This
is
provided
for
completeness
mostly
here
I
go
ahead
and
do
a
curl
command
against
that
using
http
and
I'm
accessing
my
nginx
server.
On
the
other
end,.
A
So
that,
once
again,
a
very
brief
overview
of
credible
port
forwarding.
A
This
is
something
I'm
going
to
cover
briefly,
which
is
logging
logs
in
kubernetes,
are
simply
output
to
standard
out
or
standard
error
from
your
pods
and
containers.
All
of
this
is
routed
into
the
logging
subsystem,
which
is
then
stored
on
disk
standard
out
and
standard
error
are
merged
together
into
one
stream.
A
The
stream
is
rotated
regularly.
Typically,
it
goes
through
five
rotations,
either
by
time
or
by
size,
on
the
on
the
node,
so
kubecon
logs
only
accesses
the
last
log
in
the
rotation.
So
that's
something
important
to
know
logs
also
can
be
retrieved
for
the
previous
container
instance,
which
is
handy
if
the
previous
container
happened
to
fail
due
to
an
error,
you
can
access
the
previous
container's
logs
to
perform.
Debugging
here
are
some
examples
of
here's
some
examples
of
retrieving
logs
on
the
nodes.
A
In
this
case,
it's
getting
all
containers
within
the
nginx
deployment,
which
is,
which
is
handy,
keep
in
mind
that
you
can
use
label
label
matching
for
for
logging.
So
in
this
next
example,
what
I'm
doing
is
I'm
getting
logs
for
all
containers
with
the
label
of
app
engine
x,
I'm
adding
a
prefix
on
that.
So
I
know
exactly
which
container
it's
coming
from
and
I
get
the
output.
So
that's
handy
if
you're
looking
at
a
group
of
containers
that
are
associated
with
a
particular
application,
for
instance,.
A
Unlike
logs,
it
allows
you
to
deal
with
standard
out
and
standard
errors
separately
as
well
as
gives
you
access
to
standard
in,
so
you
can
use
coupe
pedal
attached
to
get
access
to
all
three
of
these
standard
streams
for
terminal
access
or
for
separate
access
to
standard
out
and
standard
error,
you'll
be
given
the
option
to
allocate
a
tty
which
allows
full
interactive
access
to
shell.
For
example,
that's
running
in
your
pod.
A
A
So
I'm
going
to
take
a
slight
digression
and
talk
about
coop
cuddle
run
talk
about
kubeco
run,
because
this
is
closely
related
to
coop
cuddle
attach
so
here.
In
this
example,
I'm
using
coop
cuddle
run
to
run
a
pod
couple
run,
is
basically
a
quick
way
of
getting
a
pod
up
and
running
for
a
specific
container.
A
Here
I
can
specify
dash
the
options
dash.
I
and
dash
t
I
allocate
standard
in
dash
t
allocates
a
tty,
and
here
I
can
see
the
effects
of
specifying
the
dash
t
below.
A
So
once
I
do.
The
couple
run.
It's
going
to
log
me
in
to
the
container
give
me
a
command
prompt
and
I
can
go
ahead
and
type
tty
here.
You
can
see
that
I
have
a
tty
allocated
on
pts
zero
and
if
I
take
a
look
at
the
file
descriptors
for
my
first
process,
you
can
see
that
all
of
these
are
routed
to
ttys
or
rather
to
the
tty
that
I've
allocated.
A
A
I'm
going
to
run
tty,
just
as
I
did
in
the
previous
example,
and
you
can
see
not
a
tty
since
I
haven't
allocated
a
tty
and
if
I
look
for
my
file
descriptors
for
the
first
process,
you
can
see
that
these
file
descriptors
are
all
forwarded
pipes.
These
pipes
presumably
go
over
the
network
to
my
local
client,
which
allows
us
access.
A
So
now
coupe
cuddle
run.
Actually
you
can
think
of
it
as
executing
two
commands
the
run
command
itself
and
a
separate
attach.
A
So
here
I
can
use
run
coupe
cuddle
run
with
the
same
options,
but
at
the
very
end,
I'm
going
to
say
attach
equals
false.
This
tells
kubeco
run
not
to
run
and
attach,
after
you've
run
the
pod.
This
will
just
run
the
pod
in
the
background
and
wait
for
an
attach
which
I'm
doing
here
here.
I
can
go
ahead
and
attach
to
it
again
I
specify
my
pod
and
as
before.
I
can
go
ahead
and
run
commands
in
that
pod.
A
So
I'm
going
to
show
you
a
couple
examples
that
show
you
the
various
effects
of
of
the
options
from
coo
cuddle
run
on
coop
cuddle
attach
so
here
I'm
running
coop
cuddle
run
dash
int,
so
I'm
allocating
standard
n
and
a
tty
I'm
going
to
run
that
pod
in
the
background
with
attach
equals
false
and
then
later
on,
I'll,
go
ahead
and
attach
to
it,
and
in
this
case
I'm
going
to
attach
to
it,
but
I'm
going
to
redirect
standard
out
and
standard
error
to
separate
files.
A
So
in
this
first
example,
I'm
going
to
echo
the
string
standard
out
to
standard
out
I'm
going
to
echo
standard
error
out
to
a
file
descriptor
2,
which
is
standard
error,
and
then
I'm
going
to
log
out
by
hitting
control
d.
So
I
can
then
inspect
the
standard
out
and
standard
error
files
to
see
what
was
actually
put
in
there,
and
you
can
see
here
in
standard
out.
A
It
got
both
the
output
from
standard
out
and
standard
error,
and
if
I
can't,
if
I
cat
standard
error,
you
can
see
that
it
only
says
if
you
see
this
command
prompt,
try
to
press
enter.
If
you
don't
see
command,
prompt,
try
to
press
enter
so
here
by
specifying
the
t
option,
it's
folded,
standard
out
and
standard
error
into
the
same
stream.
A
If
I
leave
off
the
t
option
here
when
I
run
when
I
run
the
pod
and
then
I
do
the
same
as
I
did
before
with
the
redirections
and
run
the
same
commands,
you
can
see
here
that
the
output
and
the
files
are
going
to
be
different.
This
actually
separates
standard
out
and
standard
error,
so
I
can
treat
each
stream
separately
very
handy
for
debugging.
A
So
that's
it
proxies
pods
and
ports.
What
a
very
cursory
overview
of
what
I've
covered
today
is
that
cuddle
proxy
gives
you
direct
access
to
your
api
server,
which
can
be
very
handy
proxy.
Not
only
gives
you
direct
access
to
your
api
server,
but
allows
you
to
access
http
and
https
endpoints
on
your
pods
and
services,
which
is
very
handy.
A
A
So
you
can
use
couple
with
dash
dash
raw,
which
gives
you
very
similar
effect
to
using
the
kukula
proxy
command
without
having
to
start
a
proxy.
This
gives
you
access
to
http,
get
delete
and
post
methods,
which
is
nice
as
before.
It
also
allows
you
to
get
access
to
http
and
https
endpoints
on
your
pods
and
services.
A
Couple
of
statch
allows
you
to
forward
standard
streams
to
your
client.
If
you
wish
to
split
out
standard
error
in
standard
out,
remember
that
to
not
allocate
a
tty
on
your
pod
or
container.
A
So
and
last
but
not
least,
port
forwarding
forwards,
tcp
traffic
by
http,
two
from
a
pod
or
service.
The
http2
sometimes
can
get
in
the
way
of
using
proxies,
so
be
mindful
of
that,
and
it
will
not
forward
udp
traffic.
A
So
that's
it.
I
hope
you
enjoyed
the
presentation
here
are
a
couple
references
one
covers
proxies
and
the
last
one
is
quite
good.
It's
all
about
cluster
access,
a
similar
topic
to
this
presentation.