반응형

 

Kubernetes Cluster를 설치한 날짜: 2022년 12월 21일

 


참고:
한땀 한땀 설치 과정을 이해하고 테스트하면서 kubernetes 내부 구성을 스터디하는 것이 목적이 아니라면,
아래 블로그를 읽고 kubespray로 설치하는 것을 추천한다.
  https://andrewpage.tistory.com/305

https://andrewpage.tistory.com/305

 

 

 

 

Kubernetes cluster(쿠버네티스 클러스터) 구축을 도와주는 여러 도구(kubeadm, kubespray, kops)가 있다.

이 문서에는 그런 kubernetes cluster 구축 도구 중에서 kubeadm을 이용하여 kubernetes cluster를 구축하는 방법을 설명한다.

 

참고로, kubeadm 도구가 가장 수작업이 많고 사람 손을 많이 탄다. 

그렇지만 Kubernetes 내부 구성을 이해하고 싶거나 작동 원리를 알고 싶다면 kubeadm 도구를 이용해서 설치하면 좋다.

즉, kubernetes를 공부하는 것이 목적이라면 kubeadm 관리 도구를 사용하는 것을 추천한다.

 

 

Kubernetes Cluster 구축을 위한 계획하기

Ubuntu 22.04 를 설치한 Master node와 Worker node를 준비한다.

  • Master Node: 1개 (master-0)
  • Worker Node: 2개 (worker-0, worker-1)

 

Master Node와 Worker Node 준비 작업

master node와 worker node 모두에서 아래의 작업을 수행한다.

kubernetes는 iptables를 이용하여 pod간 통신을 가능하게 한다. 따라서 iptables가 정상 동작하도록 하기 위해 아래와 같이 설정한다.

 

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# sysctl params required by setup, params persist across reboots
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# Apply sysctl params without reboot
sudo sysctl --system

 

모든 master node, worker node에서 swap 영역을 비활성화한다.

 

$  sudo sed -i '/swap/d' /etc/fstab

##
## 또는 위와 명령 대신, /etc/fstab 파일을 열어서 swap 과 관련있는 filesystem 항목을
## 주석으로 막아도 된다.
##

$  sudo swapoff -a

$  free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        1.0G         13G         13M        925M         14G
Swap:            0B          0B          0B
$

 

방화벽(Firewalld)를 비활성화한다.

(원칙은 kubernetes가 사용하는 service port만 allow 설정해야 하지만, 여기서는 간단하게 firewalld를 종료하는 것으로 하겠다)

$  systemctl stop firewalld
$  systemctl disable firewalld

 

 

Container Runtime Interface(CRI) 설치하기 (여기서는 CRI-O를 설치!)

master node와 worker node 모두에서 아래의 작업을 수행한다.

$ sudo -s

$ apt update && sudo apt upgrade

$ OS=xUbuntu_22.04

##
## 주의: Kubernetes 1.25를 설치할 것이기 때문에
##      CRIO도 1.25를 설치하는 것이다. (즉, 2개의 버전이 일치해야 한다)
##

$ CRIO_VERSION=1.25

$ echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /"|sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list

$ echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$CRIO_VERSION/$OS/ /"|sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$CRIO_VERSION.list

$ curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$CRIO_VERSION/$OS/Release.key | sudo apt-key add -

$ curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | sudo apt-key add -

$ sudo apt update

$ sudo apt install cri-o cri-o-runc

$ apt show cri-o

$ systemctl enable --now crio.service

$ systemctl status crio

$ apt install cri-tools

$ crictl info

##
## cri-o가 잘 동작하는지 확인하기 위해 아래와 같이 container image를 pulling하는 테스트한다.
##

$ crictl pull busybox

$ crictl images

 

 

 

 

 

 

 


여기까지 설명이  master node, worker node에서 준비해야 할 작업이다.
이 다음 설명부터 실제 kubernetes cluster를 구축하기 위한 작업이다.

 

 


 

kubeadm, kubelet, kubectl 설치

kubeadm: kubernetes cluster를 구축하기 위한 명령 도구

kubelet: master node, worker node에서 데몬 프로세스로 기동되어 있으면서, container와 pod를 생성/삭제/상태를 감시한다.

kubectl: 사용자가 kubernetes cluster에게 작업 요청하기 위한 명령 도구 (예를 들어, 'pod를 생성해달라!'  'pod의 개수를 늘려달라!' 같은 사용자 명령을 kunernetes API server에게 전달)

 

아래의 명령을 따라 하여 kubeadm, kubelet, kubectl 명령 도구를 설치한다.

(모든 장비에서 수행해야 한다. 즉, Master Node와 Worker Node 모두에 해당하는 작업이다.)

 

$ sudo -s

##
## Update the apt package index and 
## install packages needed to use the Kubernetes apt repository:
## 

$ apt-get update

$ sudo apt-get install -y apt-transport-https ca-certificates curl


##
## Download the Google Cloud public signing key:
## 

$ curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

##
## Add the Kubernetes apt repository:
##

$ 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

##
## Update apt package index, install kubelet, kubeadm and kubectl, and pin their version:
##

$ apt-get update

$ apt-get install -y kubelet kubeadm kubectl

 

 

Kubernetes Cluster 생성하기

아래 명령을 master-0 node에서 수행한다.

 

##
## 주의: Master-0 노드에서만 수행해야 한다.
##

$ sudo -s

$  kubeadm init --apiserver-advertise-address 10.10.1.10
...
...


##
## Cluster 초기화는 2~3분 정도 걸린다.
## 초기화 작업이 끝나면 아래의 명령을 수행한다.
##

$ mkdir -p $HOME/.kube

$ cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

$ chown $(id -u):$(id -g) $HOME/.kube/config

 

위 명령을 수행하고 바로 Container Network Interface(CNI) 설치하는 작업을 수행해야 한다.

 

 

CNI 설치

CNI에는 많은 종류가 있지만, 사용하기 쉽고 대중적인 Calico 또는 Flannel CNI를 설치하겠다.

(Case A)  Calico를 설치하는 경우  <-- 추천

## 참고: 2023년 4월 23일 현재, v3.25.1을 설치하는 것을 권장.
$ kubectl apply  -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.1/manifests/calico.yaml

##
## 주의: 위 명령을 수행하고 나서, `kubectl get pod -A` 명령으로 calico 관련 pod가 모두 기동했는지
##      확인한 후에 다음 절차를 수행해야 한다.
##

(Case B)  Flannel을 설치하는 경우 <-- 나는 개인적으로 별루~  (몇 달 운영하다가 Error  발생한 경험이 있어서)

$  kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

 

 

※ 참고

위 명령 `kubectl apply -f .......calico.yaml` 을 수행 후 CNI 설치에 문제가 있었다면, Pod 'coredns-xxxxxx'  구동하지 못하고 'pending' 상태로 남게 된다.

그런 경우는 대부분 `kubeadm init --pod-network-cidr=10.244.0.0/16` 명령을 수행했을 때 사용했던 CIDR 값이 master node, worker node의 물리 주소와 겹치는 경우에 문제가 발생한다. 따라서 '10.244.0.0/16' 값이 아닌 다른 값으로 다시 변경해서 kubernetes cluster를 생성해보면 문제가 해결될 수 있다.

 

 

잠깐:
  위 명령을 수행하고 대략 3분 쯤 지난 후, 아래와 같이 Pod의 기동 상태를 확인하자!
  모든 Pod가 Running 상태로 변경된 이후에 나머지 작업을 진행한다.
root@master-a:~# kubectl get pod -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-74677b4c5f-88gzk   1/1     Running   0          55s
kube-system   calico-node-g2dcp                          1/1     Running   0          55s
kube-system   coredns-565d847f94-8mgrs                   1/1     Running   0          3m9s
kube-system   coredns-565d847f94-gsd5q                   1/1     Running   0          3m9s
kube-system   etcd-master-a                              1/1     Running   0          3m16s
kube-system   kube-apiserver-master-a                    1/1     Running   0          3m15s
kube-system   kube-controller-manager-master-a           1/1     Running   0          3m14s
kube-system   kube-proxy-vbg6h                           1/1     Running   0          3m10s
kube-system   kube-scheduler-master-a                    1/1     Running   0          3m15s
root@master-a:~#

 

 

Worker node joining

위에서 `kubeadm init` 명령을 수행했을 때, 출력되었던 메시지 중에 `kubeadm join ....` 과 같은 형태의 메시지가 있었을 것이다.

그 메시지를 복사해서  모든 worker node에서 수행한다.

# worker-0, worker-1에서 아래의 명령을 수행한다.
kubeadm join 10.1.3.170:6443 --token pdfjgjas.psdfjbh kajsdjhasdfv \
    --discovery-token-ca-cert-hash sha256:3nasklj46kj234k5lj12k3j4gkfdjjgdsfh51a3a686

위 명령이 수행된 이후에 master-0 node에서 아래의 명령으로 cluster 구축된 결과를 확인한다.

$  kubectl get node
NAME                         STATUS   ROLES                  AGE    VERSION
master-0.kube.sejong.space   Ready    control-plane,master   3m     v1.25.2
worker-0.kube.sejong.space   Ready    <none>                 1m     v1.25.2
worker-1.kube.sejong.space   Ready    <none>                 1m     v1.25.2

 

Kubernetes cluster 삭제 (Tear down)

만약 깔끔하게 kubernetes cluster를 지우고, 처음부터 다시 구축하고 싶다면 아래와 같이 cluster를 reset 한다.

$  apt install ipvsadm

$  kubeadm reset;   rm -rf  $HOME/.kube  /etc/kubernetes;   rm -rf /etc/cni;  ipvsadm --clear

 

 

Bastion Node 설정

위 설명에서는 kubectl 명령을 master-0 node에서 수행했다.

그러나 일반적으로 master-0에 직접 SSH 접속해서 kubectl 명령을 수행하는 것을 권장하지 않는다.

kubernetes cluster node는 운영 node이기 때문에 개발자가 접속하는 것이 바람직하지 않다.

(어쩌면, 보안 규정상 개발자가 master node에 SSH 접속하는 것 자체를 허용하지 않는 회사도 있을 것이다)

따라서 master-0 node가 아닌 본인의 PC(예를 들어 MacBook 같은 PC)에서 접속하는 방법을 사용하는 것을 권장한다.

방법은 간단하다.

master-0 node에 있는 /etc/kubernetes/admin.conf 파일을 내 PC(예를 들어 Macbook)에 복사하기만 하면 된다.

# MacOS를 사용한다고 가정하고 설명하겠다.
$  mkdir -p $HOME/.kube
$  cd $HOME/.kube
$  master-0 node의 '/etc/kubernetes/admin.conf' 파일을 내 PC로 내려받는다.
$  mv  admin.conf  config

# 내 PC에서 Kubernetes cluster의 API 서버로 잘 접속하는지 아래와 같이 명령을 수행해본다.
$  kubectl get node
NAME                         STATUS   ROLES                  AGE    VERSION
master-0.kube.sejong.space   Ready    control-plane,master   128m   v1.25.2
worker-0.kube.sejong.space   Ready    <none>                 126m   v1.25.2
worker-1.kube.sejong.space   Ready    <none>                 126m   v1.25.2
$

 


 

이 아래 부분에서 설명하는 작업 절차는 Kubernetes를 운영하는 데 있어서 꼭 필요한 것은 아니고, Web Dashboard로 좀 더 예쁘게 Kubernetes cluster를 모니터링하고 싶은 경우에 아래 Web Dashboard 설정 작업을 해주면 좋다.

 

Kubernetes Web Dashboard 설치 및 설정

내가 참고했던 Web docs(https://waspro.tistory.com/516) 가 있고, 이 문서에서 설명한 3가지 방식 중에서 3번째 방식(Kubernetes API Server 연동 방식)을 사용하는 것을 권장한다.

이 Web Docs에 설명이 잘 되어 있어서 내가 별도 설명할 필요 없을 것이고, 내가 수행했던 명령만 로그로 남겨보겠다.

 

$  kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
$  kubectl proxy   &

# Service Account 생성

$  cat <<EOF | kubectl create -f -
 apiVersion: v1
 kind: ServiceAccount
 metadata:
   name: admin-user
   namespace: kube-system
EOF
$

# ClusterRoleBinding을 생성

$  cat <<EOF | kubectl create -f -
 apiVersion: rbac.authorization.k8s.io/v1
 kind: ClusterRoleBinding
 metadata:
   name: admin-user
 roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
   name: cluster-admin
 subjects:
 - kind: ServiceAccount
   name: admin-user
   namespace: kube-system
EOF
$

# 사용자 계정의 Token 확인
$  kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}') 
Name:         admin-user-token-p9ldd
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name=admin-user
              kubernetes.io/service-account.uid=041cb7ec-946a-49b6-8900-6dc90fc08464

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6InFmdGVUUnB6QmhoOHhlSDBJLUNLVHlEWWxpd2ZVaDhBVjZOQXE5TElhVWsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWZ2dG5uIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJjOGExZTY3MS00NmY1LTQwZjctODNkYy02YTE4N2NiYzkzYmYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.lKKD4yEvlpFJ7-BNuPTyO3YRuFYYdQMgPX5azXwn4bZiki2Y886k1dnNM16L4YuA_SSahrPtitSzPfevlAoeC5msdDg1DKRdFuGuYkkI_u_KvOv7orMopDDgZs0zuXFrHIZa1-qiWbgvHfgokOMvndchCcMHyo8pKD3vdBAq_AxtGlCIPImkfALM_d41FrBKIXEjdoCcHkPu7Cz13UAxNRBRs-d274g2UNz-MUnNiomDhJlcYFXTXeooKjHhUiyoFLCgP-V6Wh_1QSCwdfYZGQ1bF0QcZINQZdwluyOtP43AjXHxdSBrAGIPfaY7qsBR_b2upuUDnQsA1w7qkaQB0g     <== 이 빨간색 token을 Web dashboard login 화면에 붙여 넣고, "Sign-in" 버튼을 누른다.
$

 

위와 같이 ServiceAccount와 ClusterRole을 설정하고, secret을 생성/등록한 후에 Web Browser에서 접속하면 된다.

 

접속 주소 예시:  http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

 

 

 

 


 

Troubleshooting & How to clear the issue

kubeadm join  명령이 실패하는 경우.

대부분 master node에서 생성한지 1시간이 초과된 token 값을 이용해서 worker node에서 join하려고 하면 

'kubeadm join' 명령이 실패한다.

worker node 1, 2, ... 9 이런 식으로 순차적으로 작업하다가 보면, 거의 끝 부분에 있는 worker node 9는 이미 1 시간이 지난 뒤에

'kubeadm join'을 하게 되므로 종종 실패하게 된다.

그러나 심각한 문제는 아니고, master node에서 'kubeadm token create ...' 명령을 사용해서 다시 token 값을 생성해주기만 하면 된다.

아래와 같이 master node에서 token create하고, worker node에서 새로 만들어진 token 값으로 `kubeadm join'하면 된다.

##
## On master node.
##
$ kubeadm token create --print-join-command

kubeadm join 10.10.3.33:6443 --token z53s7g.aa...zc --discovery-token-ca-cert-hash sha256:372...3a686


##
## On worker node.
##
$ kubeadm join 10.10.3.33:6443 --token z53s7g.aa...zc --discovery-token-ca-cert-hash sha256:372...3a686

[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

$


##
## 위와 같이 worker node의 joining이 성공하면, 
## 그 동안 activating (auto-restart) 상태였던 kubelet에 아래와 같이 active(running) 상태로 바뀐다.
## On worker node.
##

$ systemctl status kubelet

● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: active (running) since Thu 2021-11-11 15:38:54 KST; 17s ago
   ...
   ...
   
 $

위와 같이 Active: active (running) 상태로 출력되면, 정상적으로 kubelet이 기동되고 Master node와 연동된 것이다.

 

 


 

 

 

 

##
## 채용 관련 글
##
제가 일하고 있는 기업 부설연구소에서 저와 같이 연구/개발할 동료를 찾고 있습니다.
(이곳은 개인 블로그라서 기업 이름은 기재하지 않겠습니다. E-mail로 문의주시면 자세한 정보를 공유하겠습니다.)

근무지 위치:
  서울시 서초구 서초동, 3호선 남부터미널역 근처 (전철역 출구에서 회사 입구까지 도보로 328m)
필요한 지식 (아래 내용 중에서 70% 정도를 미리 알고 있다면 빠르게 협업할 수 있음):
  - 운영체제 (학부 3~4학년 때, 컴퓨터공학 운영체제 과목에서 배운 지식 수준):
    예를 들어, Processor, Process 생성(Fork)/종료, Memory, 동시성, 병렬처리, OS kernel driver  
  - Linux OS에서 IPC 구현이 가능
    예를 들어, MSGQ, SHM, Named PIPE 등 활용하여 Process간 Comm.하는 기능 구현이 가능하면 됨. 
  - Algorithm(C언어, C++ 언어로 구현 가능해야 함)
    예를 들어, Hashtable, B-Tree, Qsort 정도를 C 또는 C++로 구현할 수 있을 정도 
  - Network 패킷 처리 지식(Layer 2 ~ 4, Layer 7)
    예를 들어, DHCP Server/Client의 주요 Feature를 구현할 정도의 능력이 있으면 됨.
  - Netfilter, eBPF 등 (IP packet hooking, ethernet packet 처리, UDP/TCP packet 처리)
  - IETF RFC 문서를 잘 읽고 이해하는 능력 ^^
  # 위에 열거한 내용 외에도 제가 여기 블로그에 적은 내용들이 대부분 업무하면서 관련이 있는 주제를 기록한 것이라서
  # 이 블로그에 있는 내용들을 잘 알고 있다면, 저희 연구소에 와서 연구/개발 업무를 수행함에 있어서 어려움이 없을 겁니다.
회사에서 사용하는 프로그래밍 언어:
  - 프로그래밍 언어: C, C++, Go
    (참고: 아직 연구소 동료들이 Rust를 사용하진 않습니다만, 새 언어로써 Rust를 사용하는 것을 고려하는 중)
근무 시간:
  - 출근: 8~10시 사이에서 자유롭게 선택
  - 퇴근: 8시간 근무 후 퇴근 (오후 5시 ~ 7시 사이)
  - 야근 여부: 거의 없음 (내 경우, 올해 상반기 6개월간 7시 이후에 퇴근한 경우가 2회 있었음)
  - 회식 여부: 자유 (1년에 2회 정도 회식하는데, 본인이 집에 가고 싶으면 회식에 안 감. 왜 참석 안 하는지 묻지도 않음)
외근 여부:
  - 신규 프로젝트 멤버 -> 외근 전혀 하지 않음 (나는 신규 프로젝트만 참여해서 지난 1년 동안 한번도 외근 없었음)
  - 상용 프로젝트 멤버 -> 1년에 5회 미만 정도로 외근
팀 워크샵 여부:
  - 팀 워크샵 자체를 진행하지 않음. (워크샵 참석하는 거 싫어하는 개발자 환영 ^^)
연락처:
  - "sejong.jeonjo@gmail.com"  # 궁금한 점은 이 연락처로 문의주세요.
  - 블로그 비밀 댓글 (제가 하루에 한번씩 댓글 확인하고 있음)
원하는 인재상:
  - 우리 부설연구소는 "긴 호흡으로 프로젝트를 진행"하기 때문에 최소 2년간 한 가지 주제를 꾸준하게 연구/개발할 수 있는 개발자를 원함.
  - 우리 부설연구소는 자주적으로 연구 주제를 찾아서 업무를 하기 때문에 능동적으로 생각하고 행동하는 동료를 원함.
  - 차분하게 연구 주제에 몰입하고, 해법을 찾는 것을 즐기는 사람.
내가 느끼는 우리 연구소의 장점:
  - 갑/을 관계가 없음. (제가 근무하고 있는 연구소는 SI업종이 아니라서 갑/을 회사 개념이 없음)
  - 연구소 자체적으로 연구 주제를 발굴하고 시스템을 개발하기 때문에 개발 일정에 대한 스트레스가 적음
  - 빌딩 전체를 우리 회사가 사용하므로 분위기가 산만하지 않음.
  - 근처에 예술의전당, 우면산 둘레길이 있어서 점심 시간에 산책하기 좋음 ^^
  - 연구소 동료들 매너가 Good (2년간 일하면서 한번도 감정에 스크레치 생기거나 얼굴 붉히며 싸운 적 없음 ^^)

 

반응형
작성일: 2024년 2월 2일

 

 

법원 웹 페이지에서 가족관계증명서를 발급받는게 참 어려웠었는데, 오늘 법원 웹 페이지에 접속해서 발급 신청해보니 너무 간단하고 쉬웠다.

 

1)  법원 웹 사이트 접속 >> 증명서 발급 >> 가족관계 증명서 발급, 이런 순서로 메뉴 선택  (그냥 아래 링크 클릭하면 된다 ^^)

 

 

증명서발급 | 가족관계등록부 | 가족관계증명서 | 가족관계등록부 신청인 정보 조회

가족관계등록부 신청인 정보 조회 이용안내 미리 확인해 주세요! 1. 신청인의 본인확인을 위해 인증서(공동인증서, 금융인증서, 간편인증)가 필요합니다. 인증서 안내 2. [테스트 증명서 출력]을

efamily.scourt.go.kr

 

2)  입력하는 개인 정보 입력하고, 간편인증(카카오톡 인증 또는 네이버 인증)을 한다. 

    (이렇게 "간편 인증"을 수행하면 Mac OS에서 프로그램 설치하는 것 없이 술술 잘 인증된다)

 

3)  그리고 프린터로 증명서를 출력.

 

 

M1 맥북을 처음 구입했던 불과 3년 전만해도 정말 불편하고 복잡했는데... ㅠㅠ

 

주민등록 등본, 초본은 가족관계증명서보다 더 쉽게 M1, M2 Mac OS에서 출력할 수 있다.

설명할 필요조차 없이 쉬우니까 설명 생략 ^^

반응형

책 제목:  백년허리 (백년 동안 간직할 허리 사용설명서)

글쓴이: 정선근 (서울대학교 병원 의사)

발행 날짜: 2021년 5월 13일

 

마라톤하면서 추간판 파열로 인해 몇년간 고생했다.

잘 고쳐야겠다는 생각에 종합병원, 개인병원 등 두루두루 다니면서 허리 치료에 노력을 아끼지 않았다.

그러다보니 자연스럽게 허리 치료에 관한 책을 찾게 되었고 최근에 꽤 괜찮은 책을 발견했다.

 

총 2권으로 되어 있으니, 만약 구입할 것이라면 2권을 모두 구입해서 읽는 것이 좋다.

 

기존 유튜버들이 잘못된 의료 지식 및 허리 운동 방법을 전달하고, 이 잘못된 허리 운동을 따라하다가 더 허리 부상을 악화시키는 것을 많이 보았다고 한다.

그래서 글쓴이(정선근)님이 정확하고 바른 의료 지식을 전달하고자 우선 일반인이 읽기 쉽게 책을 썼고, YouTube 채널도 만들었다고 한다.

책을 읽어보면 알겠지만, 기존 유튜버들과 다른 방식으로 허리 건강을 찾는 방법을 설명한다.

그 동안 나도 잘못된 방식으로 허리 운동을 해왔다는 것을 깨달았다.

허리를 건강하게 만든다고 알고 있던 코어 근육 운동들이 대부분 디스크 파열을 야기하는 운동이었던 셈이다.

 

책에서는 다양한 임상 사례, MRI 등 객관적인 자료를 이용하여 설명한다.

이 모든 것을 아주 짧게 요약한다면, 

  • 걷기, 가볍기 달리기 --> 찢어진 디스크의 회복(재생)을 위해 줄기세포를 자극하여 디스크가 더 회복이 잘 된다.
  • 요추 전만 자세(신전 자세)를 일상 생활에서 자주 실천하자 !
반응형

주말, 휴일에는 주차가 힘들기 때문에 월~목요일 중에서 밤 날씨가 좋을 때 가는 것이 좋다.
- 참고로, 주차장의 대기 차량 수를 아래와 같다.
    2022년 10월 16일 일요일 오후 5시 30분.  주차장 대기 차량 3대
    2022년 10월 16일 일요일 오후 6시 10분.  주차장 대기 차량 10대

 

서울 북악산 능성을 따라 자하문 ~ 정릉 아리랑고개에 이르는 길. 대략 8km 길이이고,  왕복 2차로의 좁은 길이다.

1968년 북한무장공비의 청화대 침투 사건 이후에 수도권 경비 강화를 위해 만들어진 도로이다.

북악스카이웨이 중간에 있는 북악팔강정은 서울 야경을 보기 위해 좋은 장소이다.

북악스카이웨이길

 

 

 

서울야간데이트 북악스카이웨이 서울밤드라이브 즐기세요. 주차장

서울야간데이트 즐기는 북악스카이웨이 서울밤드라이브 요즘은 겨울이어서 저녁에 서울야간데이트 즐길 곳...

blog.naver.com

 

 

 

서울 종로구 : 서울 드라이브 코스 추천 북악산 북악스카이웨이, 주차장정보, 북악팔각정 식당

지난주 일요일 남자친구랑 평창동에 있는 공방에서 도자기 수업 듣기 전 다녀온 멋진 경치 구경하며 밥 먹...

blog.naver.com

 

주차장

실내 주차장이 있고, 주차 요금은

  • 10분당 400원  (2022년 현재)
  • 전기차는 50% 감면
    • 전기차는 사전 무인 정산기로 결제하면 안 되고,
    • 출차할 때 차단기 앞에서 호출 버튼을 눌러서 담당자에게 요금할인을 받고 결제해야 한다.

참고로, 주차장 대기줄이 길지만.. 워낙 팔각정에서 놀거리가 없다보니 20분 이내에 대부분 출차하기 때문에 조금 기다리면 금방 주차 공간이 생긴다.

(이 대기줄도 봄/여름/가을에는 길고, 겨울에는 별로 찾는 사람이 없다)

 

 

카페

은평 한옥마을, 카페 롱브레드

브런치 맛집 (그렇다면, 밥과 커피를 먹기 위해 아침에 가야겠군 ^^)

발코니에서 보는 북한산이 멋지다.

 

 

은평 한옥마을, 카페 롱브레드와 1인1잔 (+북악스카이웨이)

은평한옥마을 카페 투어 서울 여행 기록 :) 은평한옥마을 두 번 다녀와서 한번에 쓰는 리뷰! 처음 갔을 땐 ...

blog.naver.com

 

은평 한옥마을, 1인1잔

 

 

식당

삼청동 수제비

 

 

삼청동 수제비 주말 웨이팅+주차

안녕하세요 잇님들! 또니입니다 :) 오늘은 미쉐린 가이드 선정 맛집 삼청동 수제비에 다녀 온 후기를 남겨...

blog.naver.com

 

 

삼청동수제비 - 여전히 줄 서서 먹는 주차되는 삼청동맛집 ?

삼청동수제비 - 여전히 줄 서서 먹는 주차되는 삼청동맛집 ? 한 때 핫하디 핫했던 삼청동, 그 중에서도 삼...

blog.naver.com

전용 주차장 있음 (식당 손님은 무료)

 

 

그외 볼걸리

반응형

오늘(2022년 9월 18일) 수원 행리단길 

 

주차장 정보

장안동 공영주차장

  • 일 주차: 4,000원

행리단길에서 제일 가깝다. 딱 행리단길만 보고 올 사람은 이 주차장을 이용하는 것이 좋다.

단, 주말이라면 오전 11시 이전에는 도착해야 주차가 가능하다.

화홍문 공영주차장

  • 기본 요금: 30분 400원
  • 추가 요금: 10분당 100원
  • 일 주차: 3,500원

만약, 위 장안동 공영 주차장에 주차 공간이 없으면, 화홍문 공영 주차장을 이용한다. 다른 주차장보다는 규모가 훨씬 크다.

대략 행리단길까지 500m미터 정도 걸으면 된다.

단, 주말이라면 오전 11시 30분 전에는 도착해야 주차 공간이 남아 있을 것이다.

연무동 공영주차장

  • 기본 요금: 30분 400원
  • 추가 요금: 10분당 200원
  • 일 주차: 4,000원
  • 전기차 할인: 최초 2시간 면제 후, 추가 시간은 50% 할인.
    • 예를 들어,
      • 전기차가 3시간 주차했다면,  총 주차요금은 600원.
      • 전기차가 4시간 주차했다면,  총 주차요금은 1,200원. 

연무동 공영주차장 요금 체계

 

모바일 사전 정산

 

나는 위 안내판을 보고, QR코드를 찍고 모바일 정산을 했다. 내 차가 전기차이고, 대략 3시간 30분 정도 주차를 했기 때문에 사전 정산 금액으로 900원 결제했다. 차량번호 입력하면, 바로 전기차를 인지하고 할인 금액을 보여줬다.

카드 결제도 하나1QPay, KB Pay 같은 것이 다 되기 때문에 본인 편한 방식으로 결제하면 된다.

 

내가 연무동공영주차장에 주차를 하고 행리단까지 걸어간 경로이다. 대략 800m 정도 된다.

10분 정도 걸으면서 주변에 볼거리도 많아서 오히려 멀리 주차한 것이 좋았다.

 

 

카페

블루스보이커피

https://www.instagram.com/bluesboycoffee/

커피 맛, 품질을 중요하게 생각하는 사람에게 이 카페를 추천한다.

그리고 이 카페에서 1시간 정도 머물며 분위기를 봤는데, 신기하게도 이 동네의 다른 업종 종사자(공방, 미용사 등)들이 손님의 절반 이었다.

즉, 이 동네 주민에게 인심을 얻은 카페이면서, 동네 마실 장소로 여겨지는 것 같았다.

특이하게도 토요일에는 라이브 공연을 한다고 한다.  카페 공간이 넓지 않으니까 대략 관객은 20명 정도이지 않을까... (나의 추측)

 

 

식당

요미우돈교자

나는 12시쯤 갔는데, 너무 대기하는 사람이 많아서 그냥 포기하고 왔다.

다음에는 11시 20분쯤에 가서 미리 줄서있어야겠다.

우동 교자 식당 외관

 

 

우동 교자 식당의 상차림

 

 

골목길이 고느넉하면서 여유로웠다.

딱히 목적지를 정하지 않고, 골목 사이사이를 걸으면서 머리를 식히기에 좋은 여행 장소이다.

 

 

그 외에 아래의 장소를 둘러 봤는데, 마음의 여유만 있다면 적당하게 시간 보내기 좋은 장소이다.

  • 화성 행궁
  • 한옥기술전시관
  • 수원전통문화관
  • 우영우김밥 (드라마 이상한 변호사 우영우 촬영지)
  • 장안문
  • 화홍문
  • 동암문
  • 용연 (연못 정원)
반응형

 

천안 빵소, 빵빵데이 공식 홈페이지: 
  https://pangpangday.co.kr/bbs/page.php?hid=p301

 

 

천안빵빵데이

Kakao.init('52a4909cdeb9295d91c2ea0c20b873a8');

pangpangday.co.kr

 

천안 빵소, 빵집 지도

 

천안 빵빵데이 (공식 블로그)

 

https://blog.naver.com/ikstkr2/222862139510

 

빵소(所) 소개

나랑 빵 먹으러 천안 갈래? 천안시인증빵명소 '빵소(所)' 추천코스 지친 삶을 위로하는 '힐...

blog.naver.com

 

 

 

뚜쥬루

돌가마점 (천안시 동남구 풍세로 706)

성정점 (천안시 서북구 백석로 207)

거북이점 (천안시 서북구 봉서산로 69-22)

 

 

 

천안 뚜쥬루 돌가마점 빵지순례 필수 방문할곳

천안 여행을 잡으면서 여기는 꼭 가야지 했던 곳인데 소노벨 천안이랑은 거리가 머네요ㅠㅠ 위로 20여분 정...

blog.naver.com

 

 

천안 빵돌가마마을 뚜쥬루 돌가마점 빵지순례 방문후기

충남 천안에 국내유일의 빵마을이 있다는거 아세요? 바로 뚜쥬루 제과점에서 운영하는 빵 돌가마 마을입니...

blog.naver.com

 

 

몽상가인

천안시 서북구 쌍용대로 85

 

https://blog.naver.com/joyclown/222767406908

 

천안맛집/빵순이 빵지순례 몽상가인 빵굽는 향기와 함께하는 천안카페/천안빵집/쌍용동맛집/천

빵순이 수바, 천안에서 빵을 좋아한다면 대부분 아는 보장된 빵 맛집 몽상가인에 다녀왔어요 :) " 몽...

blog.naver.com

 

반응형

작성일: 2024년 1월 31일

 

 

한국은 소득에 따라 복지 혜택을 다르게 적용하기 때문에 복지 지원을 하기 전에 소득에 대한 명확한 기준이 있어야 한다.

대부분 가정의 경우,  한국장학재단은 소득 8분위(즉, 중위소득 200%)까지 장학금을 지원하기 때문에

월소득인정액11,459,826원 이하면 장학금 지원 대상자가 된다.

 

 

위 표를 볼 때, 주의할 점 !!!
  위 표는 (4인 가구)의 소득을 기준이라고 썼지만, 한국장학재단은 3인, 4인, 5인, 6인... , 9인 가구 등 모두 똑같은 경곗값을 사용한다.
  즉, 나는 자녀가 3명이라서 5인 가구지만, 4인 가구의 경계값을 이용하게 된다.
  이 규정 때문에 다자녀 가구는 9구간을 넘어가는 경우가 많다.
  즉, 3명의 자녀 때문에 더 많은 돈을 벌어야 하는데, 4인 가구 경계값 때문에 9~10구간을 넘어가는 것이다. ㅠㅠ

 


 

 

그런데 보통 착각하기 쉬운 것이 몇 가지 있다.

착각 하나,

여기서 8분위 소득이라는 것이 상위 20%의 소득을 의미하는게 아니다. 단순하게 기준 중위 소득 대비 200%에 속하는 것을 편의상 8분위 기분 소득이라고 정한 것이다. 따라서 상위 몇 %의 소득인지 이런 것과는 전혀 관련이 없다.

착각 둘,

월소득 인정액이라는 것이 내가 받는 직장인의 월급이나 개인사업자의 월 영업이익 같은 것이 아니다.

부동산(집), 자동차, 저축, 주식 같은 재산을 월 소득으로 환산하기 때문에 내 월급이 500만원이라고 해도 월 소득 인정액은 1,000만원이 넘을 수도 있다.

착각 셋,

저축, 대출 등 금융 자산도 월소득으로 인정하기 때문에 월소득 인정 금액을 줄이기 위해 아마 아래와 같은 생각을 하는 사람이 있을 것이다.

    "저축 계좌에 있던 돈을 인출해서 다른 곳에 보관해야지. 이렇게 하면 재산이 적은 것처럼 보일거야."

    "한국장학재단이 재산 조사하는 기간에 신용대출을 받아서 월소득 인정액을 줄여야지."

결론부터 말하면, 다 쓸데없는 짓이다.

한국장학재단이 금융 자산(저축, 대출)을 조사하는 시점이 "장학금 신청 기간"에 이루어지지 않기 때문이다.

    예를 들어서, 내가 장학금 신청을 2023년 12월에 신청하고, 심사 결과가 2024년 2월에 나온다고 가정해보면

    금융 자산(저축, 대출)에 대한 조사는 2023년 1월 ~ 2024년 12월 처럼 전체 기간에 대한 금융 자산을 평가한다.

    왜냐하면, 한국장학재단은 장학금 신청자가 재산의 축소하려는 시도를 막기 위해서 일부러 이렇게 한다고 한다.

    (이 내용은 한국장학재단 홈페이지에도 자세히 설명되어 있다.)

    그러니까 재산을 줄이려고 은행 통장에 있는 현금을 빼서 숨기려는 꼼수를 쓸 필요 없다.

 


 

장학금(학자금) 지원구간 산정 절차, 그리고" 소득인정액 모의 계산"을 하고 싶다면 아래 웹 사이트를 이용해보면 좋다.

 

 

학자금 지원구간 산정절차 | 학자금 지원구간 | 장학금 | 한국장학재단

※ 국외 소득·재산 신고 대상자로 선정된 경우, 국외 소득·재산 신고 필요하며 심사 기간은 최초 신고일로부터 60일 이내에 진행 (단, 심사 처리 기한은 국외 소득·재산 신고 서류의 적합성 여

www.kosaf.go.kr

 

위 웹 사이트에서  "소득인정"에 대해 "모의 계산"할 때, 내가 소유한 부동산의 공시 지가(표준공시가격)가 중요하다.

아래 웹 사이트에서 공시 가격을 확인하면 된다.

 

https://www.realtyprice.kr/notice/town/searchPastYear.htm

 

부동산공시가격 알리미

[멸실 등으로 주소가 변경된경우, "공시기준일 검색"선택 후, 변경 전 주소로 조회하십시오.] [멸실 등으로 주소가 변경된경우, "공시기준일 검색"선택 후, 변경 전 주소로 조회하십시오.]

www.realtyprice.kr

 

 

 

다자녀 국가장학금

 

다자녀 국가장학금 지원 대상

 

 

다자녀 국가장학금 지원금액

 

 

 


더 많은 정보를 보고 싶다면, 아래 "한국장학재단" 웹 페이지를 참고하세요.

 

 

https://www.kosaf.go.kr/ko/main.do

 

Intro | 한국장학재단

<2023학년도 국가장학금, 학자금 대출 차등 제한> º 재정지원제한대학(20개교)는 국가장학금, 학자금대출이 일부 제한됩니다. º 단, ’23학년도 정부재정지원제한대학 지정 처분에 대한 집행정지

www.kosaf.go.kr

https://www.kosaf.go.kr/ko/tuition.do?pg=tuition04_09_03&type=scholar 

 

소득인정액 산정방식 | 학자금 지원구간 | 장학금 | 한국장학재단

소득평가액(A) 1,500,000 - 1,300,000(학생소득공제) + 4,160,000 + [1,800,000/2(일용소득 공제)] = 5,260,000 800,000 - 1,300,000(학생소득공제 / 공제 적용 후, 남은 금액 -(음수)인 경우, 0원처리) + 2,500,000 = 2,500,000 재

www.kosaf.go.kr

 

반응형

여러 IT 주제에 대해서 개발, 운영 수준으로 설명하면서, 이해하기 쉽게 묘사한 문서이다.

급하게 필요한 정보만 빨리 이해하면서 업무에 활용하고 싶다면, 아래 Web Docs를 추춘 ~~~

 

https://www.lesstif.com/

 

lesstif.com

Container Docker, OCI, Kubernetes, OpenShift 등 Container 관련 공간입니다. ansible 자동화 도구인 Ansible 관련 공간입니다.

www.lesstif.com

 

+ Recent posts