- 23
- 24 382
Learn DevOps with Serge
เข้าร่วมเมื่อ 6 ธ.ค. 2023
Hello, I'm Serge. Welcome to my channel about DevOps! 🚀 As a DevOps engineer with a rich background in system administration and network engineering, I've launched this channel to share over a decade of hands-on experience in the world of technology. Subscribe to the channel so you don't miss new videos!
Configure HAProxy Load Balancer with Keepalived for Kubernetes and Ingress Nginx Controller
Files: github.com/devops-serge/haproxy_keepalived_k8s
Learn how to configure HAProxy as a load balancer with Keepalived for high availability in a Kubernetes environment. This video covers setting up HAProxy to work with Keepalived to ensure failover and redundancy. It also shows how to integrate this setup with the Nginx Ingress Controller to manage traffic within your Kubernetes cluster. Perfect for those looking to improve their system's reliability and performance.
Learn how to configure HAProxy as a load balancer with Keepalived for high availability in a Kubernetes environment. This video covers setting up HAProxy to work with Keepalived to ensure failover and redundancy. It also shows how to integrate this setup with the Nginx Ingress Controller to manage traffic within your Kubernetes cluster. Perfect for those looking to improve their system's reliability and performance.
มุมมอง: 41
วีดีโอ
AWS CloudTrail Tutorial for Beginners: Lake, Trails, Insights
มุมมอง 6714 วันที่ผ่านมา
Learn how to use AWS CloudTrail in this beginner-friendly tutorial. I'll cover setting up Trails to monitor account activity, creating a CloudTrail Lake event data store, and using Insights to detect unusual behavior. Whether you're new to AWS or looking to expand your skills, this step-by-step guide will help you track and analyze your cloud environment with ease. Perfect for anyone looking to...
Install External Secrets on Kubernetes using ES Operator + AWS Secrets Manager
มุมมอง 17421 วันที่ผ่านมา
My files: github.com/devops-serge/external_secrets_aws_secrets_manager In this video, I’ll guide you through deploying external secrets using the External Secrets Operator on a Kubernetes cluster. You’ll learn how to fetch and manage secrets from AWS Secrets Manager seamlessly. We’ll cover step-by-step instructions, from setting up the External Secrets Operator to configuring it for AWS integra...
Eventbridge Scheduler: How to Trigger AWS Lambda Function at a Specific Time
มุมมอง 109หลายเดือนก่อน
The code: github.com/devops-serge/lambda-eventbridge-scheduler/blob/main/lambda_function.py In this video, I'll walk you through how to use Amazon EventBridge Scheduler to trigger an AWS Lambda function at a specific time and send an email with the result to the Email. You'll learn how to configure the scheduler and connect it to a Lambda function. Whether you're automating tasks, sending notif...
How to Setup an AWS Lambda Function with API Gateway and Cognito
มุมมอง 582หลายเดือนก่อน
In this video, I'll guide you on creating an API Gateway with AWS Lambda and Cognito that authenticates requests to the API endpoints. By the end of this tutorial, you'll have a fully functional API that can handle API requests securely and efficiently. Perfect for beginners and those looking to enhance their AWS skills! The files from the video: github.com/devops-serge/api_gateway_lambda_cognito
Kubernetes Auditing: How to Log Requests to the Kube API Server
มุมมอง 1372 หลายเดือนก่อน
In this video, we dive into Kubernetes auditing, a crucial topic for managing and securing your on-premise clusters and essential for anyone preparing for the Certified Kubernetes Security Specialist (CKS) exam. I'll cover how to set up and configure auditing in Kubernetes, understand audit logs, and use them to monitor your cluster's activity effectively. This guide will provide practical insi...
AWS Fargate with ECS Tutorial: How to Deploy Microservices with a Load Balancer
มุมมอง 1.9K2 หลายเดือนก่อน
In this tutorial, you'll learn how to deploy microservices using AWS Fargate with ECS. I'll cover everything from setting up a Cluster to deploying a containerized Flask app, and how to use a load balancer for efficient traffic management. This video is perfect for beginners wanting to understand how AWS Fargate works. By the end, you'll be confident in deploying applications through AWS ECS Fa...
Kubernetes Dashboard: How to Install, Access, and Use
มุมมอง 1.3K2 หลายเดือนก่อน
Files: github.com/devops-serge/install-kubernetes-dashboard Learn how to install, access, and use the Kubernetes Dashboard in this step-by-step tutorial. I'll guide you through setting up the dashboard and navigating its features. Perfect for beginners and those looking to enhance their Kubernetes skills. By the end of this video, you'll be comfortable using the dashboard to monitor and manage ...
How to install Prometheus and Grafana using Helm in 3 minutes?
มุมมอง 2943 หลายเดือนก่อน
In this quick and informative video, I will show you how to install Prometheus and Grafana on your Kubernetes cluster using Helm Chart! Perfect for beginners, this step-by-step guide covers everything to setting up your monitoring stack effortlessly. By the end of this tutorial, you'll have a fully functional monitoring solution for your Kubernetes environment. Don't miss out on making your clu...
How to Install Argo CD on Kubernetes Cluster?
มุมมอง 2723 หลายเดือนก่อน
Files: github.com/devops-serge/install-argocd In this comprehensive tutorial, I'll guide you through installing Argo CD on a Kubernetes cluster. You'll learn how to set up Argo CD for declarative GitOps continuous delivery, from deploying the necessary manifests to configuring access via the Web UI. Whether you're a Kubernetes beginner or an experienced user, this video will help you get Argo C...
Kubernetes NodeSelector vs Node Affinity vs Pod Affinity vs Taints & Tolerations
มุมมอง 2094 หลายเดือนก่อน
Welcome! You will learn how to use Kubernetes nodeSelector, node affinity, pod affinity, anti-affinity, and, of course, taints & tolerations! In this video, I'll break down the key differences and use cases for these crucial Kubernetes features, helping you optimize pod scheduling and resource management in your clusters. Whether you're new to Kubernetes or looking to refine your deployment str...
30 Linux Commands Daily Used by DevOps Engineer
มุมมอง 1354 หลายเดือนก่อน
In this video, "30 Linux Commands Daily Used by DevOps Engineer," I am going to tell you about 30 Linux commands that I use almost every day. From navigating the filesystem with ls and cd to managing processes with ps, I cover a comprehensive list of commands that streamline daily operations and enhance productivity. Whether you are dealing with file manipulations using cp, mv, and rm, or handl...
Kubernetes Kustomize tutorial: the best way to manage your K8s configs
มุมมอง 2985 หลายเดือนก่อน
In this comprehensive tutorial, I will tell you everything about Kustomize that you should know to work with it confidently. Kustomize is a powerful tool for managing Kubernetes configurations. It allows you to customize Kubernetes manifests without modifying the original YAML files. This video covers everything from the basics of Kustomize to advanced techniques for managing multiple environme...
Install MetalLB and Ingress NGINX in Kubernetes: Layer 2 Configuration
มุมมอง 2.3K5 หลายเดือนก่อน
Install MetalLB and Ingress NGINX in Kubernetes: Layer 2 Configuration
Service types in Kubernetes: ClusterIP, NodePort, LoadBalancer, ExternalName
มุมมอง 5335 หลายเดือนก่อน
Service types in Kubernetes: ClusterIP, NodePort, LoadBalancer, ExternalName
Kubernetes tutorial: How to install a cluster on Ubuntu with kubeadm?
มุมมอง 9K6 หลายเดือนก่อน
Kubernetes tutorial: How to install a cluster on Ubuntu with kubeadm?
Ansible tutorial: install Wordpress with Ansible playbook
มุมมอง 5587 หลายเดือนก่อน
Ansible tutorial: install Wordpress with Ansible playbook
How to create own Helm Chart from Scratch in VS Code?
มุมมอง 8198 หลายเดือนก่อน
How to create own Helm Chart from Scratch in VS Code?
How to install Gitlab Runner for CI/CD on Kubernetes using Helm
มุมมอง 3.3K8 หลายเดือนก่อน
How to install Gitlab Runner for CI/CD on Kubernetes using Helm
What is a namespace in Linux, and how does it work - Intro to Docker
มุมมอง 958 หลายเดือนก่อน
What is a namespace in Linux, and how does it work - Intro to Docker
How to Upgrade GitLab CE and EE (Omnibus) on Ubuntu
มุมมอง 1.4K10 หลายเดือนก่อน
How to Upgrade GitLab CE and EE (Omnibus) on Ubuntu
im not able to see a graphical representation of my resources, please help. i followed all the steps that u did
Hi, do you have any error in the app?
Hi Serge. How do I create a container with volume like PostgreSQL?
Hi, in this case, you can use data volumes: docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html
Well i tried anything but the trick was base64 decode hahah thanks man appreciate it!
Great video serge! Thanks for the tutorial. 1] did not understand one thing from where backend.cluster:8080 came. backend is the container name 8080 added in port mapping, but what is .cluster here? 2] if I have private subnet where my backend is running and frontend is present in public subnet how can I communicate between them ?
Short, informative - great format. Thank you for the video.
8.20 name of internal network interface is not same for master and slave for me, I am getting error.
Hi, 1. You can set labels on each node group with different interface names. For example, node1 - label1 node2 - label1 node3 - label2 node4 - label2 2. Make 2 DaemonSets with different args for containers and set different nodeSelectors for each DaemonSet. 3. I suggest you watch my video: th-cam.com/video/A9phy8irRXY/w-d-xo.html
Great job Serge!
bro you have done config using values.yaml file and in github link you didnt provided the values.yaml file
Hi I am trying to setup k8s Ubuntu 22 jammy using aws ec2 instance. But issue with pod network. In logs i got dockershim.sock no such file directly like. How do i fix this issue.
Hi, The best choice is not to use Dockershim. Dockershim has been removed as of Kubernetes v1.24. kubernetes.io/blog/2022/05/03/dockershim-historical-context/
Thanks for step by step instructions. I was able to setup K8s cluster without any issue
I am newer of k8s. I used helm to install dashboard, as information dashboard installation showed. I runed kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443, then an error occured, error: unable to forward port because pod is not running. Current status=Pending.
Hello, find out the reason for the pending state using the command: "kubectl -n <NAMESPACE> describe pod <POD_NAME>".
Love this tutorial! Any chance you can show us how to do this through Terraform?
Maybe in the future)
Thanks for the tutorial
could you please share the code ?
Yes, sure. Here it is github.com/devops-serge/fargate-with-ecs
why you not have error invalid argumen with command sudo sysctl --system
Hi, this command is correct: $ sysctl --help | grep system --system read values from all system directories
love you Serge
vagrant file for networking setting , which ip should be used for --apiserver-advertise-address =windows ip4 address ?
Hi, here is my config: Vagrant file: 3.times do |i| config.vm.define "node#{i+1}" do |node| node.vm.hostname = "node#{i+1}" node.vm.network "public_network", bridge: "Intel(R) Wireless-AC 9560 160MHz", ip: "192.168.1.5#{i+1}" end end --apiserver-advertise-address: root@node1:~# cat /etc/kubernetes/manifests/kube-apiserver.yaml | grep advertise kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: 192.168.1.51:6443 - --advertise-address=192.168.1.51
can you please tell me how i can get this address pool from my network
Hi, 1. You have a local subnet. For example, 192.168.1.0/24. 2. Take nonbusy IP addresses. Your WiFi router gives IP addresses from the pool using the DHCP protocol. For example, 192.168.1.200-192.168.1.254. You can find busy IP addresses on your home WiFi router. And configure the static diapason of IP addresses (IP addresses not given by the DHCP server) there too.
your videos are so helpfull!, thank you. just a little note aside, if you create a list of the comands or the lines, especially the ones you use in the .yaml files, that would be amazing, but overall very helpfull video man!
What is kubeadm? What is the use? When we should use?
Hi, kubernetes.io/docs/reference/setup-tools/kubeadm/
Hi , i want to learn step by step about kubernetes with syllabus. Can u share here...
Hi, I'm going to make a video about it.
Another banger serge! 💪🏽
very nice. can you share your git repo.
Hi, github.com/devops-serge
Nice video Serge - Quick question: How did you setup your own gitlab? I'm struggling here with liveness and readnissess probe errors =/
Hi, there are several options: - Your virtualization environment (VirtualBox, KVM, VMWare Workstation) - VPS Hosting - Cloud Providers - Container (Docker, Kubernetes)
Helpful Thanks
how can we configure 3 vms in single machine and can we run master and worker nodes on same machine?
Hi, I use VirtualBox with Vagrant to create VMs. In Linux, you can use KVM or VirtualBox too. Yes, you can use master for your workloads. To do it, remove taints on the master/control plane node.
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1 $ sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml from where did u get this command in k8s documentation
Hi, 1. SystemdCgroup = true # The documentaion about it kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd-systemd 2. The issue with sandbox image: github.com/cri-o/cri-o/issues/6985 discuss.kubernetes.io/t/can-not-install-kubernetes-cluster-with-kubeadm/24079 ---- Note that the version of the sandbox image in each Containerd version can be changed so check it. For example, in my video, the version is 3.6 and now it is 3.8. The message while installing Kubernetes: W0725 06:32:35.829024 14158 checks.go:844] detected that the sandbox image "registry.k8s.io/pause:3.8" of the container runtime is inconsistent with that used by kubeadm.It is recommended to use "registry.k8s.io/pause:3.9" as the CRI sandbox image.
I am gettting this error message when I try to initialise kubeadm The HTTP call equal to 'curl -sSL localhost:10248/healthz' failed with error: Get "localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.. help me to resolve this.
dude at 3:49 its big command where can i get that?
Hi, containerd config default | sed 's/SystemdCgroup = false/SystemdCgroup = true/' | sed 's/sandbox_image = "registry.k8s.io\/pause:3.6"/sandbox_image = "registry.k8s.io\/pause:3.9"/' | sudo tee /etc/containerd/config.toml
Can you also make a video with ingres Traefik
Hi, I will consider.
Thanks for making this video ❤
Thank you for this video, I initialized my cluster and everything was working perfectly. However, after I rebooted my machines, the kubectl get nodes command stopped working. When I run sudo kubectl get nodes, I get the following error message:The connection to the server 192.168.56.101:6443 was refused - did you specify the right host or port?
Hi, have you disabled swap? stackoverflow.com/questions/56737867/the-connection-to-the-server-x-x-x-6443-was-refused-did-you-specify-the-right Try to execute these commands on the master node: 1. sudo -i 2. swapoff -a
@@LearnDevOpswithSerge Thanks You Very Much
Thanks You Very Much !!! working well for me
thank you very much! great content!
Thanks. Did try to install the dashboard. Please share if you have done it already
Hi, here it is: th-cam.com/video/SUk_Nm5BiPw/w-d-xo.html
how did u created the master and worker nodes?
Hi, I run virtual machines using VirtualBox and Vagrant.
at 03:47 you prepared a command, from where do i get it.
Hi, containerd config default | sed 's/SystemdCgroup = false/SystemdCgroup = true/' | sed 's/sandbox_image = "registry.k8s.io\/pause:3.6"/sandbox_image = "registry.k8s.io\/pause:3.9"/' | sudo tee /etc/containerd/config.toml
@@LearnDevOpswithSerge how did you generate this command. any documentation for it. up till this stage you have explained everything in detail but just copied and pasted this out of nowhere. the tutorial is very great!
@christopherobinna2140 Hi, 1. SystemdCgroup = true # The documentaion about it kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd-systemd 2. The issue with sandbox image: github.com/cri-o/cri-o/issues/6985 discuss.kubernetes.io/t/can-not-install-kubernetes-cluster-with-kubeadm/24079 ---- Note that the version of the sandbox image in each Containerd version can be changed so check it. For example, in my video, the version is 3.6 and now it is 3.8. The message while installing Kubernetes: W0725 06:32:35.829024 14158 checks.go:844] detected that the sandbox image "registry.k8s.io/pause:3.8" of the container runtime is inconsistent with that used by kubeadm.It is recommended to use "registry.k8s.io/pause:3.9" as the CRI sandbox image.
Thanks you
for me Culster set up is ready because of you but little issue my pods are not running properly when im using flannel but when i using calico now my pods are running
👍🏻
Keep them coming serge! Love the content
you're the best !
Cool! i learn a lot!
Hello, for the command at 5:35 how to you find the --apiserver-advertise-address
Hi, it is an IP of your master node. You can find out it by the command: "ip address show" or shortly "ip a". ``` vagrant@master:~$ ip address show | grep 192.168.1.50 inet 192.168.1.50/24 brd 192.168.1.255 scope global enp0s8 ```
@@LearnDevOpswithSerge Thank you! Do you have a video to show how to setup the kubernetes dashboard?
I haven't done it yet. Thanks for the idea!
@@LearnDevOpswithSerge also, the --pod-network-cidr, where did you find that?
@@ElliotAlderson-s4l Hi, 2d item kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#initializing-your-control-plane-node
Hi Serge, I have followed your tutorial, However, Kube Proxy status shows a Crashloop error Any suggestion Please ? Thanks
Hi, I guess you mean Flannel when talking about kube proxy. 1. Check logs of the crashed container: "kubectl -n <namespace> logs -p <pod-name>" 2. Check events of the pod in the 'CrashLoopBackOff' state: "kubectl -n <namespace> describe pod <pod-name>" 3. Analyze the information from the 1st and 2d list items.
Many Thanks! Very usefull video!
did it worked for you ? I am facing some trouble when i try to init cluster, says its: st:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused. Unfortunately, an error has occurred: timed out waiting for the condition This error is likely caused by: - The kubelet is not running - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled) If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands: - 'systemctl status kubelet' - 'journalctl -xeu kubelet' Additionally, a control plane component may have crashed or exited when started by the container runtime. To troubleshoot, list all containers using your preferred container runtimes CLI. Here is one example how you may list all running Kubernetes containers by using crictl: - 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock ps -a | grep kube | grep -v pause' Once you have found the failing container, you can inspect its logs with: - 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock logs CONTAINERID' error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster To see the stack trace of this error execute with --v=5 or higher
Hi Its a request Can you please make a explainative video on installing Kubeadm with any CNI . I am facing issues and unable to do so as I am quite new to it Thanks
Hi, I've already done it. Here is the link: th-cam.com/video/wIZamzt7MkM/w-d-xo.htmlsi=FtIFKyaZZ_Hsh91V
Hi serge, i have gitlab self hosted like you and i want to deploy gitlab runner on kubernetes, but i have an error in the gitlab runner "failed to verify the runner" . did you do any additional configuration on gitlab self hosted ? Thanks.
Hi, I only did the steps that I showed in the video. Nothing else. First of all, look at your GitLab runner log. Maybe, there is some additional information in it. Try to recheck your config, values, and network connectivity between the Kubernetes cluster and GitLab Server.
Yes, I think the problem is with network connectivity in the Kubernetes cluster that I deployed via oracle cloud. I tried to curl and ping my self hosted gitlab and the results didn't work but for nslookup it worked. I'm still trying to find out why the pods can't access the internet. wish me luck
Hi, i stuck at the step of kubeadm init ( 5:23 ), error report It seems like the kubelet isn't running or healthy., The HTTP call equal to 'curl -sSL localhost:10248/healthz' failed with error: do you know how to solve ? it costs me several hours to handle this problem... it it possible the ip problem ? i set as the same as you, but my ip start with 172.26.xxx.xxx
Awesome Vid, Serge. May I suggest creating a single page pdf file with all these commands then have people subscribe before downloading :)
Hi, Thank you. Your idea is very good!)
man that cgroup driver saved my week. thanks a million
Glad to hear it. You are welcome!