This is a simple Python application that displays a welcome message.
![Screenshot 2024-07-31 at 18 51 03](https://private-user-images.githubusercontent.com/67696393/353934328-7a293b7f-dbdc-478a-a050-dcf2c3b91d86.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzMzkyOTAsIm5iZiI6MTcyMzMzODk5MCwicGF0aCI6Ii82NzY5NjM5My8zNTM5MzQzMjgtN2EyOTNiN2YtZGJkYy00NzhhLWEwNTAtZGNmMmMzYjkxZDg2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODExVDAxMTYzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFkNjg2Y2VhYWRkYjhjOGNlZjgwOTA4MmYzYTYwMDAzNzRlOWZmNjEzNDJiNjBlZTc5ZjBmZDY1ZDQ1MWE5N2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.9KBXZZEk-fYlE5eUY9JpfNiG4wdYRdf4Y1cAqQ1aayo)
Write a Dockerfile to containerize the application.
Build the Docker image and run it locally to ensure it works correctly.
Tag it and Push the Docker image to a container registry (e.g., Docker Hub).
![image](https://private-user-images.githubusercontent.com/67696393/353993475-64550e48-f17f-4621-8752-2e348edcd7d7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzMzkyOTAsIm5iZiI6MTcyMzMzODk5MCwicGF0aCI6Ii82NzY5NjM5My8zNTM5OTM0NzUtNjQ1NTBlNDgtZjE3Zi00NjIxLTg3NTItMmUzNDhlZGNkN2Q3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODExVDAxMTYzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY1ODRiYzRjYmQ2MTc0NWVmMzRmZjZjOGMzMmM2NjYzMmZhZTNmNzUxMTZkZDYzNmVkMzdlNjhkZjUwZjRjZjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.qAceHtmC6nnIreeUw33b-hlgxhk_uH4aklAGL2EuCcI)
Create a Kubernetes manifest file for a Deployment to deploy the Docker image.
$ kubectl apply -f deployment.yaml
$ kubectl describe deployment python-app-deployment
When I try to list the Pods created by the deployment, I noticed the pods were on ImagePullBackOff,
$ kubectl get pods -l app=python-app
![image](https://private-user-images.githubusercontent.com/67696393/353985377-10d1a9e8-c00d-4967-be3a-80a72081b72a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzMzkyOTAsIm5iZiI6MTcyMzMzODk5MCwicGF0aCI6Ii82NzY5NjM5My8zNTM5ODUzNzctMTBkMWE5ZTgtYzAwZC00OTY3LWJlM2EtODBhNzIwODFiNzJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODExVDAxMTYzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFjZGQzNzUyZTEzNWI4MjYyMGU1Y2FlNDQ1MzYzY2YwN2IxMDk1ZjdkZmM5M2IxNGU3M2Q4YzRiNjliNGFmNjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.5nO8RRcda0FmSC5EdmeyeqRlGX34_5K4kQ16LqRLfSE)
To resolve this I had to check the Image name that was deployed and noticed a slight difference in the name
![Screenshot 2024-07-31 at 21 23 00](https://private-user-images.githubusercontent.com/67696393/353988266-f8564bf3-bb03-4673-a5ee-0db978ad3e3f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzMzkyOTAsIm5iZiI6MTcyMzMzODk5MCwicGF0aCI6Ii82NzY5NjM5My8zNTM5ODgyNjYtZjg1NjRiZjMtYmIwMy00NjczLWE1ZWUtMGRiOTc4YWQzZTNmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODExVDAxMTYzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRhMDgxMTQ3MTZhMGMwMmVhNGM4NDcyYmVkZGUxOTg5ZmQ0OWQzMTA1OGU2Y2E4MThjMjFjYTdlNTYxNDFlODUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.4wmnOZmKfDRsCxPiiAOLbUis5Bc0h3NKSEgwELSwT_E)
Pod in running state after using the appropriate Image; changes were made on the deployment file and then redeployed.
$ kubectl get svc
-
Port-forward the service to a local host port and access it through a web browser.
$ kubectl port-forward service/python-app-service 8080:80
When I copy the localhost port and input on the browser, the Pod lost connection and throws this error
To resolve this, I noticed that the target port on my deployment and service was different from the port my app was running (5500), this was corrected and the deployment and service were reapplied
$ kubectl apply -f deployment.yaml
$ kubectl apply -f service.yaml
- https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/
Application running on Port forwarded port