Intro Kubernetes Chapter 3 Lab 3,4
I set up a nginx in cluster;
ran
curl 10.99.142.249:80
curl 192.168.100.158:80
curl 10.200.125.2:80
it seem to hang not sure what is wrong
I created the lab environment on my local network
using HA proxy from lab 16.2
I am running kubectl from local machine
I also tried running it from worker node kworker03-test/192.168.100.158
Also a control plane node ...151
kubectl get po,ep,svc | grep nginx
pod/nginx-74d589986c-rpptl 1/1 Running 0 44m
endpoints/nginx 10.200.125.2:80 39m
service/nginx ClusterIP 10.99.142.249 80/TCP 39m
kubectl describe pod nginx | grep Node
Node: kworker03-test/192.168.100.158
Node-Selectors:
kubectl describe po nginx
Name: nginx-74d589986c-qvcq7
Namespace: default
Priority: 0
Node: kworker04-test/192.168.100.159
Start Time: Wed, 06 Jul 2022 12:43:15 -0700
Labels: app=nginx
pod-template-hash=74d589986c
Annotations: cni.projectcalico.org/containerID: 365213920a7dae68499ae1e8aeb26e3157769ef76127e5d08ac578671fca2a74
cni.projectcalico.org/podIP: 10.200.156.129/32
cni.projectcalico.org/podIPs: 10.200.156.129/32
Status: Running
IP: 10.200.156.129
IPs:
IP: 10.200.156.129
Controlled By: ReplicaSet/nginx-74d589986c
Containers:
nginx:
Container ID: containerd://cbe49e74874c0033672e466912573ebd0302556a2552a435fd069a8732ef4d3d
Image: nginx
Image ID: docker.io/library/nginx@sha256:10f14ffa93f8dedf1057897b745e5ac72ac5655c299dade0aa434c71557697ea
Port: 80/TCP
Host Port: 0/TCP
State: Running
Started: Wed, 06 Jul 2022 12:43:28 -0700
Ready: True
Restart Count: 0
Environment:
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-x5cdd (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-x5cdd:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional:
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 117s default-scheduler Successfully assigned default/nginx-74d589986c-qvcq7 to kworker04-test
Normal Pulling 117s kubelet Pulling image "nginx"
Normal Pulled 105s kubelet Successfully pulled image "nginx" in 11.665512029s
Normal Created 105s kubelet Created container nginx
Normal Started 105s kubelet Started container nginx
Comments
-
ok, deleted pod: it seems to work now
tested with:
kubectl exec --stdin --tty nginx-74d589986c-qvcq7 -- /bin/bash
From inside the container -pod
curl 10.200.156.129:80
curl 10.99.142.249:80
pod ip address works as expected<!DOCTYPE html>
html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }
Welcome to nginx!Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.Thank you for using nginx.
then the control plane
curl 10.200.156.129:80
curl 10.99.142.249:800 -
I am running a kubectl from local machine outside cluster
I created an ssh tunnel
ssh tunnel load_ip =ip_address_nginx_load_balancer_public
leave this open ssh -L 6443:localhost:6443 user@load_ip
open new terminalI can run kubectl commands:
but it hangs when I run the curl commands0 -
Hi @bdkdavid,
In Lab Exercise 3.4 the assumption is that the kubectl CLI tool runs on a cluster node, having direct access to pod IP addresses and ClusterIP service addresses. In a typical scenario, where kubectl runs remotely on a system outside of the cluster, there is no direct access to pod IP addresses and to ClusterIP service addresses. However, by converting the service to a NodePort type, you should be able to curl to "NodeIP":"NodePort".
Regards,
-Chris0 -
I was able to determine the nodes that the nginx was running and it worked as you have mentioned.
I did not convert it to a nodeport in the yaml or any other method. Is there a reason for that?0 -
Hi @bdkdavid,
Exposing the application through a NodePort type service allows you to reach that application remotely via curl to "NodeIP":"NodePort"
Regards,
-Chris0
Categories
- All Categories
- 178 LFX Mentorship
- 178 LFX Mentorship: Linux Kernel
- 772 Linux Foundation IT Professional Programs
- 382 Cloud Engineer IT Professional Program
- 175 Advanced Cloud Engineer IT Professional Program
- 75 DevOps IT Professional Program - Discontinued
- 7 DevOps & GitOps IT Professional Program
- 102 Cloud Native Developer IT Professional Program
- 7.6K Training Courses & Learning Paths
- 7 AI & ML Training
- 1 Blockchain & Decentralized Identity Training
- 19 Cloud & Containers Training
- 2 Cybersecurity Training
- 2 DevOps & Site-Reliability Training
- 1 Linux Kernel Development Training
- 2 Networking Training
- 2 Open Source Best Practice Training
- 5 System Administration Training
- 1 System Engineering Training
- 3 Web & Application Development Training
- 797 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 96 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 91 Storage
- 771 Linux Distributions
- 81 Debian
- 68 Fedora
- 23 Linux Mint
- 13 Mageia
- 24 openSUSE
- 151 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 467 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 99 Linux Security
- 79 Network Management
- 101 System Management
- 46 Web Management
- 135 Mobile Computing
- 20 Android
- 100 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 402 Off Topic
- 125 Introductions
- 33 Study Material
- 1K Programming and Development
- 310 Kernel Development
- 707 Software Development
- 1K Software
- 415 Applications
- 182 Command Line
- 5 Compiling/Installing
- 71 Games
- 319 Installation
- Archived
- 183 Small Talk
- 2 LFD140 Class Forum
- 1.4K LFS258 Class Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)