NfreerCom / servermaster

시스템관리자
MIT License
0 stars 0 forks source link

DOCKER 설치 스크립트 curl -fsSL https://get.docker.com/ | sudo sh

su - systemctl start docker systemctl enable docker docker version

루트로 실행할것 docker version

자세히 조회

kubectl describe node linux-server

<도커그룹추가 - 퍼미션 에러시> sudo usermod -a -G docker dockermake

https://docs.docker.com/engine/install/centos/

swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab

systemctl daemon-reload && systemctl restart kubelet

< 도커 설치 후 도커 그룹에 관리자 추가> usermod -a -G docker master

확인 docker ps <도커실행상태 확인> systemctl status docker <재부팅시 계속 실행되게> systemctl enable docker

<쿠버네티스 우분투(데비안) 계열 swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab cat < /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system systemctl stop firewalld systemctl disable firewalld && sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl && sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg && echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubectl && sudo apt-mark hold kubelet kubeadm kubectl && systemctl start kubelet && systemctl enable kubelet

< centos> cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch enabled=1 gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg exclude=kubelet kubeadm kubectl EOF sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes sudo systemctl enable --now kubelet

도커 실행 컨테이너 확인 docker ps

< helm 설치> curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 && chmod 700 get_helm.sh && ./get_helm.sh && helm version && helm repo add stable https://charts.helm.sh/stable && helm repo list && helm repo update

< 쿠베 네임스페이스 생성> kubectl create namespace db <사용 > --namespace

wsl2 설치 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Docker build 이미지를 빌드하는 명령어는 다음과 같습니다. docker build [OPTIONS] PATH | URL | - 생성할 이미지 이름을 지정하기 위한 -t(--tag) 옵션만 알면 빌드가 가능합니다. Dockerfile을 만든 디렉토리로 이동하여 다음 명령어를 입력합니다.

1 docker build -tapp .

kubectl annotate node/{nodename} kubeadm.alpha.kubernetes.io/cri-socket- node/{nodename} annotated kubectl annotate node/{nodename} kubeadm.alpha.kubernetes.io/cri-socket=unix:///run/containerd/containerd.sock node/{nodename} annotated

[ERROR CRI]: container runtime is not running

/etc/containerd/config.toml 파일에서 disabled_plugins 항목에서 CRI 제거한 뒤

$ systemctl restart containerd

kubeadm init

mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl get nodes mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config sudo kubectl get nodes kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" < 노드들에 붙여넣기 실행해준다> kubeadm join 200.0.0.10:6443 --token u4o1x8.o0uy4m4p72n5h27t \ --discovery-token-ca-cert-hash sha256:1ffa3e046cf5048be5b43f9483b6d29846ec598fb2b82697ad4b8a94256bfe36 kubeadm join 200.0.0.10:6443 --token u4o1x8.o0uy4m4p72n5h27t \ --discovery-token-ca-cert-hash sha256:1ffa3e046cf5048be5b43f9483b6d29846ec598fb2b82697ad4b8a94256bfe36 kubeadm 설치 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ cat token.txt ctrl+d 아래 에러 경우 Unable to connect to the server: x509 export KUBECONFIG=/etc/kubernetes/admin.conf sudo cp /etc/kubernetes/admin.conf /etc/kubernetes/master.conf sudo chown master /etc/kubernetes/master.conf sudo chown :master /etc/kubernetes/master.conf export KUBECONFIG=/etc/kubernetes/master.conf 노드 에러나면 서버는 kubeadm reset kubeadm init export KUBECONFIG=/etc/kubernetes/admin.conf kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" systemctl stop firewalld 클라이언트는 리셋하고 서버 방화벽 해제 후 root 로 토큰을 실행해준다 systemctl stop firewalld systemctl disable firewall wsl --export CentOS7 F:\111\EDU\Coding\centos\centos7.tar source <(kubectl completion bash) echo "source <(kubectl completion bash)" >> ~/.bashrc echo > token.txt 텍스트 <조회 4종> kubectl get nodes -o wide && kubectl get pods -n kube-system -o wide && kubectl get pods -o wide && kubectl get namespaces < 조회2종 추천> kubectl get nodes -o wide && kubectl get pods --all-namespaces -o wide && kubectl get svc,pod -n cert-manager kubectl config view kubectl get nodes -o wide < 쿠버 설정파일> sudo cat /var/lib/kubelet/config.yaml < static pod 관리 폴더> staticPodPath: /etc/kubernetes/manifests 쿠버네티스 서버 재부팅시 export KUBECONFIG=/etc/kubernetes/master.conf 만 실행해주면 된다 kubectl run webserver --image=nginx:1.20 --port 80 kubectl apply -f prometheus.yaml kubectl get pods -o wide <도커 이미지 바로 실행 > docker run -dit --name 컨테이너명 이미지명 <도커 태그 > docker tag 이미지명 192.168.111.12:80/태그명 실행 중인 포드에서 yaml 파일을 만듭니다. 1. kubectl get po -n nginx nginx-deployment-755cfc7dcf-5s7j8 -o yaml > podDetail.yaml 실행 중인 포드에서 replicaset yaml 파일을 작성하십시오. 2. kubectl get rs -n nginx -o yaml > latestReplicaSet.yaml 실행 중인 포드에서 배포 yaml 파일을 생성합니다. 3. kubectl get deploy -n nginx -o yaml > latestDeployement.yaml 출처: <1개 만들때> kubectl run harbor-server --image=bitnami/harbor-core:latest --port 5000 < 다중 생성> kubectl create deployment dep-web --image=httpd --replicas=2 wheel usermod -aG wheel $USER < 원격 폴더 파일 복사해올때> scp -p 5000 worker2@192.168.111.12:~/docker_repository/certs/* ~/certs/ 파트 자세히 볼때 kubectl describe pod nginx 파드 안으로 들어갈때 kubectl exec web -it -- /bin/bash 쿠버네티스 서버ip 변경먹통시 /etc/kubernetes 내의 ip 모두 변경해줄것 < 파일 내용 찾기> find / -type f | xargs grep 200.0.0.10 파트 지울때 kubectl delete deployments.apps pod명 git clone git주소 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart kubectl get pod --show-labels FROM node:12 COPY /source/hello.js / CMD ["node","/hello.js"] docker build -t hellojs:lastest . sudo curl -L "https://github.com/docker/compose/releases/download/v2.8.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version < 도커 그룹에 추가 > sudo usermod -aG docker $USER sudo service docker restart or 재부팅 <그룹없을때만> sudo groupadd docker I added the following to /etc/sysctl.conf: net.ipv4.ip_forward=1 I then restarted the network service and validated the setting: [root@pprdespap322 deploy]# systemctl restart network [root@pprdespap322 deploy]# sysctl net.ipv4.ip_forward < 실행문제 확인시> kubectl describe pods && kubectl logs -f harbor-server --since=5m < 쿠버네티스 pods 삭제 > kubectl delete pods 파드명 sudo iptables -t filter -F && sudo iptables -t filter -X && systemctl restart docker <도커 private local registry 구축> sudo iptables -t filter -F && sudo iptables -t filter -X && systemctl restart docker sudo vim /etc/docker/daemon.json { "insecure-registries" : ["localhost:5000"] } sudo systemctl daemon-reload sudo systemctl restart docker docker pull registry sudo mkdir -p /mnt/docker/registry-mount docker run -dit --restart always -v /mnt/docker/registry-mount:/var/lib/registry --name docker-registry -p 5000:5000 registry docker ps docker tag registry localhost:5000/docker-push docker push localhost:5000/docker-push curl -X GET http://localhost:5000/v2/_catalog <도커 nginx > docker pull nginx docker run -d --name webserver -p 80:80 nginx:1.21.1 ------------------------------------------------------------- server { listen [::]:80; listen 80; server_name domain.com reg-server.com; location ~ /.well-known/acme-challenge { allow all; root /var/www/certbot; } } < 2초마다 pod 조회> watch kubectl get pods -o wide < 도커 실행 컨테이너 내부 접속> docker exec -itu 0 59fedb45ac25 /bin/bash <쿠버네티스 컨테이너 내부 접속> kubectl exec pod명 -it -- /bin/bash /usr/share/nginx/html/ <아파치 경로> /usr/local/apache2/htdocs/ < 쿠버 외부노출> kubectl expose deployment NAME --port 8080 --type NodePort kubectl port-forward apache-74469546f4-8cd84 8080:8080 ps -ef | grep dockerd sudo systemctl status docker < start-limit 오류시> sudo vim /lib/systemd/system/docker.service < 쿠버 디플로이먼트 편집 > kubectl edit deployment apache < 쿠버 pod 실행대신 yaml파일로 kubectl run apache --image=httpd --port 80 --dry-run -o yaml > apache-pod.yaml < 파일로 실행 > kubectl create -f apache-pod.yaml < 볼륨 예제> docker run -d --name 컨테이너명 -v /경로:/로컬경로 -e MYSQL_ROOT_PASSWORD=비밀번호 mysql docker run -dit --name dbrun2 -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=pass mysql:latest < 반복 저장 쉘스크립트> < ip테이블 보기> sudo iptables -t nat -L -v 쿠버 네임스페이스 현재 설정 kubectl config set-context --current --namespace=nginx < cert-manager 설치> kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.9.1/