Prometheus monitoring stack on Ubuntu 22.04.2 and Micro Kubernetes Cluster (microk8s)

1) Install Ubuntu 22.04.2 desktop

Install guest agent:

sudo apt-get install qemu-guest-agent
sudo systemctl start qemu-guest-agent

Optional – Add the curret user to the sudo group:

sudo usermod -aG sudo $USER

2) Configure RDP and VNC

fix the lock problem:

3) Install docker

sudo apt install docker.io

add the current user to docker group:

sudo usermod -aG docker $USER

4) Check docker version

docker --version

5) Create a Micro Kubernetes Cluster (microk8s)

See here: https://microk8s.io/docs/getting-started

sudo snap install microk8s --classic --channel=1.27

MicroK8s creates a group to enable seamless usage of commands which require admin privilege. To add your current user to the group and gain access to the .kube caching directory, run the following two commands:

sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube

See the node:

microk8s kubectl get nodes

See the running services:

microk8s kubectl get services

Create an alias:

alias kubectl='microk8s kubectl'

Deploy an app:

microk8s kubectl create deployment nginx --image=nginx
microk8s kubectl get pods

Starting and Stopping MicroK8s:

microk8s stop
microk8s start

export the cluster configuration

kubectl config view --raw > ~/.kube/config

6) Alternatively – install minikube

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.deb

start your cluster:

minikube start

Install kubectl:

snap install kubectl --classic
kubectl version --client

7) Install helm

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

or using snap:

sudo snap install helm --classic

8) Deploy Prometheus monitoring stack to Kubernetes with a single Helm Chart

See: https://dev.to/kaitoii11/deploy-prometheus-monitoring-stack-to-kubernetes-with-a-single-helm-chart-2fbd

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

helm repo update

kubectl create ns prom

helm search repo prometheus-community

helm install prometheus prometheus-community/kube-prometheus-stack -n prom

helm install ksm prometheus-community/kube-state-metrics -n prom # install the kube-state-metrics

kubectl --namespace prom get pods

Check configmaps and secrets:

kubectl --namespace prom get configmap
kubectl --namespace prom get secret

Look inside a secret file:

kubectl --namespace prom get secret

Check CRDs

kubectl get crd

9) Access Prometheus Dashboard

$ kubectl port-forward -n prom service/prometheus-kube-prometheus-prometheus 9090

10) Access Grafana Dashboard

$ kubectl port-forward -n prom deployment/prometheus-grafana 3000

default user/password is admin/prom-operator

11) Uninstall Prometheus stack

$ helm uninstall ksm -n prom
$ helm uninstall prom -n prom

12) Install and use K8S Lens to explore what was deployed in the kluster:

https://k8slens.dev/

Baked Catfish

Original recipe from here: https://www.delish.com/cooking/recipe-ideas/a26595303/best-baked-catfish-recipe/

Directions

Preheat oven to 425° and drizzle 2 tablespoons oil on a large baking sheet. On a large plate, combine cornmeal and Cajun seasoning. Season catfish with salt and pepper, then dredge fish in seasoned cornmeal, pressing to coat. 

Place fish on prepared baking sheet and drizzle with remaining 2 tablespoons oil. Bake until golden and fish flakes easily with a fork, 15 minutes. Serve with lemon wedges.

breaded catfish

Lawn Winterkill: Lessons from 2016-’17

https://csuhort.blogspot.com/2017/12/lawn-winterkill-lessons-from-2016-17.html

No Roof Scams

There are many things consumers can do to guard against being the victim of a fraudulent roofing contractor.

  • Look for well-established, licensed, insured and bonded roofing professionals with a federal tax identification number and a permanent address.
  • Ask for a contractor’s license number and confirm with your city or county building department that the license number was issued by them and is current.
  • Check to make sure the contractor is registered to conduct business in Colorado at https://www.sos.state.co.us/biz/BusinessEntityCriteriaExt.do.
  • Ask to see the company’s certificates of insurance. Verify with the insurer the certificate is valid, the contractor is endorsed for roofing work, and the contractor’s coverage for liability and workers’ compensation is current. CONSUMER TIP: Check the number of employees covered by the policy – a low number indicates the contractor will hire temporary help who may or may not have roofing experience.
  • Don’t hire a contractor who knocks on your door following a storm. Most legitimate roofing contractors do not conduct business this way.
  • Contact the Colorado Roofing Association (CRA), which maintains a current list of licensed, properly insured, professional contractors who have committed to abiding by the CRA Code of Ethics, and have passed a nationally recognized exam that addresses roofing work on residential and/or commercial property.
  • Contact the Better Business Bureau to check for complaints filed against any company you are considering hiring.
  • Be sure to get more than one estimate.
  • Require references that specifically include other homes in your area, and check them.
  • Make sure you review and understand all documents sent to your insurance carrier.
  • Never pay a contractor in full or sign a completion certificate until all the work is completed.
  • Don’t be pushed into signing a contract right away. Never sign a contract with blanks or statements like “see insurance estimate, etc.” – fraudulent contractors may enter unacceptable terms later.
  • Always ensure that before you sign a contract it includes all the requirements established in Colorado Senate Bill 38.
    1. Scope of work and materials to be provided.
    2. Cost for same based on damages known at the time the contract is entered into.
    3. Approximate dates of service.
    4. Roofing contractor’s contact information.
    5. Identification of contractor’s surety and liability coverage insurer and their contact information.
    6. Contractor’s policy regarding cancellation of contract and refund of any deposit including a rescission clause allowing the property owner to rescind the contract for roofing services and obtain a full refund of any deposit within 72 hours after entering the contract.
    7. A statement that if the property owner plans to pay for the roofing services through an insurance claim, the contractor cannot pay, waive or rebate the homeowner’s insurance deductible in part or in whole.
    8. A statement that the contractor shall hold in trust any payment from the property owner until the contractor has delivered roofing materials to the jobsite or has performed a majority of the roofing work on the property.
    9. A statement that the property owner may rescind a contract for services, the payment for which will be made from the proceeds of a property insurance claim, within 72 hours after receiving notice from their insurer that the claim is denied in whole or in part.

Organizations participating in the No Roof Scams campaign include:

Original link: NoRoofScam Campaign Fighting Roofing Fraud in Colorado During Severe Weather

Почивка в Гърция най-близо до София и България

https://www.nasamnatam.com/statia/Pochivka_v_Gyrciia_nai_blizo_do_Sofiia_i_Bylgariia-3632.html

https://www.tripadvisor.com/AttractionProductReview-g189403-d13504995-All_Day_Cruise_3_Islands_to_Agistri_Moni_Aegina_with_lunch_and_drinks_included-Pir.html

Homemade croissants

The recipe is from here:

Ingredients

Flour, 660 g.
Butter, 100g
Water, 200 ml.
Milk, 200 ml.
Sugar, 25 g.
Dry baker's yeast, 10 g.
Eggs, 2 units.
Salt, a teaspoon.

    Preparation

    In a big bowl add the following ingredients:

    • 200 ml of warm milk
    • 200 ml of warm water
    • 10 grams of dry bread yeast
    • 25 grams of sugar

    Stir well

    15 to 20 minutes – leave it to rest

    Add to the bowl:

    • 1 egg
    • 1 egg white – keep the yolk for later
    • 660 grams of Flour
    • 1 teaspoon of salt

    Mix well the flour and the rest of the ingredients. The dough will be sticky.

    On a flat surface pour some cooking oil and transfer the dough from the bowl to the surface for easier kneading. Knead it well in different directions for couple of minutes. Form a ball from the dough and put it back into the bowl.

    1 hour – leave it to rest.

    It should double its volume. Transfer the dough from the bowl to the flat surface and knead the dough for a minute.

    • Divide the dough into 12 equal parts.
    • Spread each of them into a flat circle.
    • Stack them while covering each with a melted butter except for the top one.

    30 – 40 min. – leave it to rest

    • Transfer the dough to the flat surface and spread it until it makes a circle with diameter of 50 cm.
    • Use a pizza cutter or a similar tool to cut the circle into 12 equal parts
    • roll each part as shown in the video to form each croissant
    • Put a baking paper at the bottom of the baking pan and arrange the croissants on top of it

    20 min – leave it to rest

    • Add a little bit of milk to the egg yolk
    • mix it well
    • use a brush to cover the croissants with the mix

    Pre-heat the oven to 180 degrees Celsius (360 degrees Fahrenheit)

    Bake for 20 to 30 min.

    Take the pan out of the oven and let the croissants cool of. Cover the pan with aluminum foil, so the croissants do not dry up.

    You are done – enjoy!