hello

rke2 설치 가이드

Share

환경 구성 전 사전 작업

# 파일 최대 활성화 개수 증가
## inotify 이벤트 큐 크기 증가 (이벤트 누락 방지)
sudo sysctl -w fs.inotify.max_queued_events=524288
## 사용자별 inotify 인스턴스 수 제한 증가 (동시에 더 많은 감시 가능)
sudo sysctl -w fs.inotify.max_user_instances=16383
## 사용자별 inotify 감시 파일 수 제한 증가 (더 많은 파일 감시 가능)
sudo sysctl -w fs.inotify.max_user_watches=524288
sudo sysctl -p


# 열 수 있는 파일 디스크립터 소프트/하드 제한 증가 (프로세스별 파일 핸들 수 확대)
sudo vi /etc/security/limits.conf
---
* soft nofile 1048576
* hard nofile 1048576
---


# rke2-server 서비스의 최대 파일 디스크립터 수 제한 설정
sudo mkdir -p /etc/systemd/system/rke2-server.service.d
sudo vi /etc/systemd/system/rke2-server.service.d/override.conf
---
[Service]
LimitNOFILE=1048576
---

Control Plane

# Ubuntu 22.04 / root 권한인 상태에서 했던 히스토리


# 기존 설치된게 있으면 깨끗이 제거
/usr/local/bin/rke2-killall.sh
/usr/local/bin/rke2-uninstall.sh

# installer agent 다운로드 & 설치 (CP용)
curl -sfL https://get.rke2.io | sh -

# Config 작성
mkdir -p /etc/rancher/rke2/
vi /etc/rancher/rke2/config.yaml

### Config 파일 예시
---
profile: "cis" 
# root 그룹만 읽게, 더 엄격하게 하려면 0600
write-kubeconfig-mode: "0640"   
data-dir: /mnt/iscsi/rke2

etcd-snapshot-schedule-cron: "0 */6 * * *"
etcd-snapshot-retention: 28
etcd-snapshot-compress: true
etcd-expose-metrics: true
etcd-s3: true
etcd-s3-endpoint: "s3.ap-northeast-2.amazonaws.com"
etcd-s3-region: "ap-northeast-2"
etcd-s3-bucket: "my-rke2-etcd"
etcd-s3-folder: "prod/cluster-a"
etcd-snapshot-dir: /mnt/iscsi/etcd-backup

# openssl rand -hex 32
token: cf94b10e4c86d7092376eafa6118e807615ba735bbbaf654cfca446e86af6dd1

# CNI를 기본값 canal 대신 ebpf를 쓰는 cilium으로 (커널 5.8 이상 버전 필요)
cni: cilium 

# cilium 사용 시 kube-proxy 사용 안함
disable-kube-proxy: true

# 네트워크
cluster-cidr: "10.42.0.0/16"
service-cidr: "10.43.0.0/16"
cluster-domain: "cluster.local"

tls-san:
  - 12.34.56.78 


# --- kube-apiserver: 감사 로깅 등 ---
kube-apiserver-arg:
  - "audit-log-path=/var/lib/rancher/rke2/server/logs/audit.log"
  - "audit-policy-file=/etc/rancher/rke2/audit-policy.yaml"
  - "audit-log-maxage=30"
  - "audit-log-maxbackup=10"
  - "audit-log-maxsize=200"


node-ip: 12.34.56.78
---

### audit 파일
---
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
  - level: Metadata
    resources:
      - group: ""        # core
        resources: ["pods", "secrets", "configmaps", "services"]
      - group: "apps"
        resources: ["deployments", "daemonsets", "statefulsets"]
  - level: RequestResponse
    verbs: ["create", "update", "patch", "delete", "deletecollection"]
    resources:
      - group: ""        # secrets 등 민감한 건 ResponseBody 제외하려면 redaction 정책 추가
        resources: ["secrets"]
    omitStages:
      - "RequestReceived"
---

### Cilium Chart 값(HelmChartConfig)
---
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
  name: rke2-cilium
  namespace: kube-system
spec:
  valuesContent: |-
    hubble:
      enabled: true
      relay:
        enabled: true
      ui:
        enabled: true

    # kube-proxy 대체(엄격) 모드
    kubeProxyReplacement: "strict"

    # RKE2 고정: APIServer in-cluster 주소
    k8sServiceHost: "localhost"
    k8sServicePort: 6443

    # (선택) 노드 간 직접 라우팅 등 튜닝
    autoDirectNodeRoutes: true

    # (선택) 데이터 플레인 암호화를 원하면 커널 지원 확인 후 사용
    # encryption:
    #   enabled: true
    #   type: "wireguard"   # 또는 "ipsec"
---


# 서비스 등록
systemctl enable rke2-server.service

# 서비스 활성화
systemctl start rke2-server.service

# (로그 조회)
journalctl -u rke2-server -f



Control Plane (Join)

bss

Agent Node



# Installer Agent 설치 (Agent용)
curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -

# 서비스 등록
systemctl enable rke2-agent.service

# Config 파일 작성
mkdir -p /etc/rancher/rke2/
vim /etc/rancher/rke2/config.yaml

# 서비스 시작
systemctl start rke2-agent.service

# (로그 조회)
journalctl -u rke2-agent -f

Kubectl를 사용자 계정에 적용

sudo mkdir -p $HOME/.kube
sudo cp /etc/rancher/rke2/rke2.yaml $HOME/.kube/config
sudo chown $USER:$USER $HOME/.kube/config

# DATA-DIR는 config.yaml에서 정의한 값
echo 'export PATH=$DATA_DIR/bin:$PATH' >> ~/.bashrc
echo 'export KUBECONFIG=$HOME/.kube/config' >> ~/.bashrc
source ~/.bashrc

Read more

LLM 시대, 프롬프트 엔지니어링보다 '도메인 전문성'이 더 강력한 무기인 이유

최근 AI 도구들이 비약적으로 발전하면서 '프롬프트 엔지니어링'이라는 기술적 기법에 많은 관심이 쏠렸습니다. 하지만 실제 현업에서 LLM을 극한으로 활용해 고도의 결과물을 만들어내는 사람들의 공통점은 정교한 프롬프트 템플릿을 쓰는 능력이 아니라, 해당 분야에 대한 깊은 '도메인 전문성'을 갖추고 있다는 점입니다. 많은 이들이 LLM이 지식의 격차를 줄여준다고

By JHL

AI 코딩 에이전트 도입 시 고려해야 할 보안 제어 프레임워크: 속도와 안전의 균형 잡기

최근 Claude Code나 Kiro와 같은 AI 코딩 에이전트들이 단순한 코드 완성을 넘어, 자연어 프롬프트 하나로 수십 개의 PR을 생성하고 인프라를 수정하는 수준까지 발전했습니다. 하지만 이러한 생산성 향상은 '기계적 속도'라는 트레이드오프를 동반합니다. AI 에이전트는 조직의 보안 리스크나 컴플라이언스를 이해하지 못한 채 오직 '작업 완료'에만 최적화되어

By JHL

AI 벤치마크의 '포화 상태'와 평가 지표의 유효기간: 우리는 무엇을 믿어야 하는가

최근 LLM의 성능이 비약적으로 상승하면서, 역설적으로 우리가 모델의 성능을 측정하는 '자' 자체가 무용지물이 되는 현상이 가속화되고 있습니다. arXiv에 게재된 "When AI Benchmarks Plateau: A Systematic Study of Benchmark Saturation" 연구는 우리가 흔히 신뢰하는 벤치마크 점수가 왜 더 이상 모델 간의 변별력을 제공하지 못하는지, 그리고 이른바 '

By JHL

AI 에이전트 시대의 엔드포인트 보안: 실행 권한을 넘어 '행위 거버넌스'로

DevOps.com을 통해 Airlock Digital이 발표한 'Agentic AI Control & Governance' 솔루션 소식을 접했습니다. 이번 발표의 핵심은 단순히 '어떤 AI 소프트웨어를 실행할 것인가'라는 기존의 화이트리스트 방식(Application Control)을 넘어, 실행 중인 AI 에이전트가 '실제로 어떤 명령을 내리고 어떻게 행동하는가'를 실시간으로 제어하겠다는

By JHL