Hemövningar

Hemövning till 8 feb

Sätt upp Dockerfil → Image, Github Actions och Kubernetes-miljö


Gör en Dockerfile för ditt projekt enligt antlingen följande dokumentations-steg:
Eller enligt mina instruktioner:
Viktigt att Dockerfilen heter exakt “Dockerfile” och ligger i din root-mapp (alltså “start”-mappen / översta mappen i ditt projekt)

Du kan själv sedan builda din applikation med :
docker build -t NAMNET_DU_VILL_HA_PÅ_DIN_IMAGE

Eller köra skapandet av Docker-builden automatiskt via Github Actions och spara den i Docker Hub-repot enligt nedan:

Github Actions


Använd följande GIthub Actions enligt dina secrets ( Repo-settings → Secrets → Actions
bild.png
bild.png
bild.png
bild.png

Tryck in dig på “Actions” i din repo:
bild.png
Skapa ett nytt workflow:
bild.png
Följa en mall eller starta fån grunden.
bild.png
Klistra in denna del som vi satte ihop under lektionen:



name: automation

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
pull_request:
branches: [ master ]



# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkar in på den aktuella branschen och repon
uses: actions/checkout@v2

# Använder tillfälligt dotnet-miljön
- name: Setup Dotnet Env
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.x
- name: Kör restore
run: dotnet restore
- name: Kör vår Build
run: dotnet build --no-restore
- name: Genomför unit-tester
run: dotnet test --no-build
- name: Loggar in på Docker
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Building the Docker Image och skickar den till Docker Hub
uses: docker/build-push-action@v2.9.0
with:
push: true
tags: ANVÄNDARNAMN_PÅ_DOCKER_HUB/NAMNET_OCH_TAGEN_TILL_DIN_IMAGE
# Runs a single command using the runners shell
- name: Run a one-line script
run: echo Tack tack, bra jobbat!


# Runs a set of commands using the runners shell
- name: Run a multi-line script
run: |
echo Add other actions to build,
echo test, and deploy your project.

Sätt upp en Virtual Machine på Azure och installera följande miljö:


Se till att du har senaste package-listorna på servern:
sudo apt-get update && sudo apt-get upgrade -y
2. Lägg till paket för https-CURL-hämntningar
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
3. Lägg in verifieringen för att validera dina nedladdningar sen
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
4 Lägg till repot för Kubernetes paket-källa
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
5.Installera Kubernetes
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
och tillåt IP-koppling med IP-tables och nätverksstyrning
echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p

6. Lägg till Docker
sudo apt-get install docker.io

7. Skapa en fil som heter daemon.json med följande innehåll genom detta script:
sudo nano /etc/docker/daemon.json
8. Kopiera in detta i filen:
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
7. Tryck sedan:
CTRL+X sedan Y och sedan enter
starta om Docker
sudo systemctl restart docker
Kolla så att rätt driver används av Docker
sudo docker info | grep Cgroup
ipt
Screenshot 2022-02-08 at 06.16.55.png
9. Logga in på Docker:
sudo docker login
10. Hämta din image (Pull request) (tex myapplication/myimage )
sudo docker pull [NAMNET_PÅ_IMAGE]
Eller använd min tillfälligt:

Hämta Kubernetes config-filer
sudo kubeadm config images pull

Initiera Kubernetes
sudo kubeadm init
Om du får fel, åtgärde dem eller kör:
sudo kubeadm init --ignore-preflight-errors=all

Notera och spara den info du får efter din init (speciellt din join-IP och det —token som genererats)
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.