[지속 업데이트] 필기정리-20170714-Kubernetes 입문
Docker부터 시작
무엇 때문에 왔는가
Paas는 유래가 오래되었지만 엄청난 건설 비용을 면할 수 없다.마찬가지로 소프트웨어 프로젝트에서 (기술 창고 구축->기초 기술 구축->시뮬레이션 테스트) 전체 과정은 시간이 길고 자원 격리가 철저하지 않으며 배치 대가가 크다. Docker는 이런 측면에서 매우 큰 장점을 가진다.
Docker의 몇 가지 중요한 개념
namespace
cgroup
서브시스템(자원 컨트롤러), 관리 cpu, iops,network,memory,device access
LXC
방향 비교
결실
성능
LXC >> KVM >> XEN
메모리 사용률
LXC >> KVM >> XEN
격리 정도
XEN >> KVM >> LXC
AUFS
공유 파일 시스템
전체 생명주기 개발 모델
Build + Ship + Run
App 패키지
Kernel + BaseImage + Self Images + Container
Daemon
로컬 포트 바인딩을 위한 RESTful API(k8s 기반)
Docker 기본 명령
docker version
OPTIONS= - -H
-H=unix:///var/run/docker.sock
-H=tcp://0.0.0.0:2375
http_proxy = xx.xx.xx.xx:8080
https_proxy = xx.xx.xx.xx:8080
docker search xxx
docker pull xxx [repo:tag]
docker images
docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG]
-v [ ]
docker inspect [containerId] // Volume
docker create/start/stop/pause/unpause
docker ps //
docker run -rm // , remove
docker commit <container> [repo:tag] // , , , buildfile (supervisor)
docker build -t xx/xx .
Docker 친선 프로그램 구조
etcd/zookeeper를 사용하여 Docker Image에서 구성 분리
컨테이너 상호 연결
Volume 기반 연결
링크 기반 연결
docker-proxy - 포트 매핑NAT: docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8066 -container-ip 172.17.0.15 -container-port 3306 - 숙박 호스트 네트워크host-only (같은 포트에서 시작하는 두 개의 프로세스를 시작할 수 없음) [부하 균형을 시작할 수 없음] 유한하고 중복 사용이 불가능: – net=host - 용기 공용 IP 네트워크: - net=container: mysqlserver (같은 IP 사용 localhost 상호 방문)이 개념은 k8s에서 중요한 의미를 가진다. 호스트 간에 임의의 프로세스에 접근할 수 있다.
컨테이너 네트워크 메커니즘
Linux 라우팅 메커니즘 네트워크 연결
systemctl daemon-reload #
iptables -F; iptables -t nat -F
tshark -f icmp; tshark -i docker0 -f icmp
Namespace 간 통신 사용veth pair/Linux Bridge
brctl show
docker inspect -f '{{state.pid}}' containerId
mkdir -p /var/run/netns; ln -s /proc/xx/ns/net /var/run/netns/xx
ip netns exec xxx ethtool -S eth0
OVS + Docker
Open vSwitch (Security/Monitoring/QoS/Automated Control)
ovs-vsctl add-br br0
ovs-vsctl add-port br0 gre1 --set-interface gre1 type=gre option:remote_ip=192.168.18.128
brctl addif br0 docker0
ip link set dev br0 docker0
ip link set dev br0 up
ip link set dev docker0 up
iptables -t nat -F; iptables -F
ip route add 172.17.0.0/16 dev docker0
Docker 관리 도구
중요 개념
Namespace
다임자 자원 격리
Resource
어떤 NS에서 상태 연결/한정 할당/etcd로 지속 가능한 자원 대상
Label
리소스를 필터링하고 선택하는 데 사용되는 임의의 K-V 페어
Volumes
여러 컨테이너에 사용할 수 있는 Pod 스토리지 볼륨
마스터 노드
리소스 액세스 포털에 대한 관리 노드 제공
Node
Linux 작업 노드(부하 노드) 자체 복구, 마스터 관리 및 Pod 인스턴스 시작 및 관리
Pod
k8s의 최소 작업 스케줄러로 모든 Node에서 Pod 내 공유 자원(네트워크/Volumes)을 복구할 수 있습니다.
Service
마이크로 서비스 컨테이너/컨테이너 격리/TCP/무상태/다중 인스턴스/기본 외부 액세스 불가/스크롤 업그레이드
Replication Controller
Pod 던전 컨트롤러, 현재 실례 개수 한정, 스크롤 업그레이드 공급자, 서비스 집단 제어 범주에 속한다
클러스터 배포
kubectl get pods/namespace/...
kubectl cluster-info
kubectl describe pods/...
--rollback
kubectl scale #
kubectl rolling-update #
부하 균형과 네트워크 토폴로지
Service
Proxy 네트워크 에이전트 & 부하 균형기
swagger-ui ku8-eye (ku8 eye-web/ku8 eye-ansible)
기존 docker + k8s 변경 및 제출 방법
docker ps | grep xxx
docker commit {docker id}
kubectl exec -it xxx /bin/bash
Mark
filename 모든 텍스트의 previous를 new로 바꾸기
sed -i 's/previous/new/g' filename
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
koa2 데이터api 중간부품 디자인 모델의 실현 방법모든 데이터베이스 읽기를 가정하면 httpapi 인터페이스 요청은 하나의 중간부품으로 중간부품을 플러그인으로 삼아 데이터를 얻을 위치를 삽입합니다. api.js db.js 직렬 연결 app.js 보기에는 매우 조화롭...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.