kubeadm 설치 모범 사례는 Kubernetes

머리말

컨테이너 레이아웃 도구로는 Kubernetes는, 컨테이너 관리를 단순화 인기 업무의 효율성을 향상시킵니다. 많은 초보자 배포는 Kubernetes는 "×××"어려운 문제, 우리는 "×××"는는 Kubernetes를 배포 할 수있는 가장 쉬운 방법을 실제 전투 경험 댓글 kubeadm가 없기 때문에.

A,는 Kubernetes 프로필

는 Kubernetes (K8S 함)의 오픈 소스 클러스터 관리 시스템 컨테이너, 컨테이너는 자동 클러스터 배치 자동 스케일링 용량 관리 및 기타 기능을 달성 할 수있다. 이 컨테이너의 레이아웃 도구뿐만 아니라 컨테이너 기술을 선도하는 새로운 분산 아키텍처 기반의 프로그램입니다. 상기 배치 조작의 응용, 자원 스케줄링 서비스 디스커버리 및 동적 스트레칭 및 기타 기능을위한 용기를 제공 도커 기술의 기초에서 대형 컨테이너 클러스터 관리의 편리 성을 향상시킨다.
클러스터의 K8S 관리 노드는 노드의 두 가지 유형으로 노력하고 있습니다. 관리 노드 사이의 K8S 노드 클러스터 관리, 클러스터 정보 교환, 작업 스케줄링에 대한 책임, 또한 컨테이너 관리를 담당, 포드, 네임 스페이스, PV 등의 수명주기. 포드는 노드 컨테이너 작업 주로, 포드 및 컨테이너 작업자 노드에서 모두 실행이 노드가 컨테이너의 수명주기를 관리하기 위해 관리와 통신 할 수 kubelet 서비스 노드를 통해 작동하고, 클러스터의 다른 노드와 통신하는 컴퓨팅 자원을 제공합니다.
kubeadm 설치 모범 사례는 Kubernetes

둘째, 환경을 준비

아래와 같이는 Kubernetes 물리적 서버 또는 가상 머신을 실행 지원, 가상 머신이 테스트 환경, 하드웨어 구성 정보를 사용할 수 있습니다 :

IP 주소 노드 역할 CPU 기억 호스트 이름 디스크
10.10.10.10 석사 > = 2C > = 2G 석사 SDA
10.10.10.11 노동자 > = 2C > = 2G 노드 1 SDA
10.10.10.12 노동자 > = 2C > = 2G 노드 2 SDA

참고 : 모든 노드에서 다음 단계

1. 호스트 이름이 관리 노드 마스터를 설정, 호스트 이름의 호스트 이름을 설정합니다.

hostnamectl set-hostname master

다른 호스트 이름을 설정해야하는 경우, 마스터가 올바른 호스트 이름 노드 1로 대체 할 수, 노드 2가 될 수 있습니다.
2. 편집의 / etc / hosts 파일, 도메인 이름 확인을 추가합니다.

cat <<EOF >>/etc/hosts
10.10.10.10 master
10.10.10.11 node1
10.10.10.12 node2
EOF

3. 방화벽, SELinux가 스왑을 끕니다.

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

4. 커널 구성 매개 변수는 IPv4 트래픽은 브리지 체인의 iptables에 전달됩니다

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

5. 냠 국내 소스를 구성

yum install -y wget
mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all && yum makecache

국내는 Kubernetes 소스 구성

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg  
EOF

구성 고정 표시기 소스

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

셋째, 소프트웨어 설치

참고 : 모든 노드에서 다음 단계

1. 고정 표시기 설치

yum install -y docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker –version
Docker version 18.06.1-ce, build e68fc7a

고정 표시기 서비스 컨테이너를 실행하는 컴퓨팅 자원을 제공하는 모든 컨테이너 작업을위한 기본 플랫폼입니다.
2. 설치 kubeadm, kubelet, kubectl

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

다른 클러스터에 노드 및이 노드 포드와 컨테이너 라이프 사이클 관리와 통신을 담당 Kubelet. Kubeadm는 Kubernetes는 배포 도구를 자동으로 쉽게 배포를 줄이고 효율성을 높일 수 있습니다. Kubectl이는 Kubernetes 클러스터 관리 도구이다.

넷째, 마스터 노드 배포

참고 : 마스터 노드에서 다음과 같은 작업

1.는 Kubernetes 클러스터 초기화 마스터.

kubeadm init --kubernetes-version=1.14.2 \
--apiserver-advertise-address=10.10.10.10 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

세그먼트는 POD 정의된다 : 10.244.0.0/16는, API 서버 주소는 마스터 로컬 IP 주소이다.
공식 웹 사이트에서 kubeadm 기본이 필요한 이미지, 국내 액세스를 다운로드, 따라서이 부분에있을 수 없습니다 알리 구름 이미지 --image-저장소, 많은 초보자 초기 배포 카드로 창고의 주소를 지정해야합니다 k8s.grc.io 때문에이 단계는 중요하다 이후의 구성.
클러스터 초기화 성공적인 반환 다음 정보 :
kubeadm 설치 모범 사례는 Kubernetes

생성 된 레코드의 마지막 부분은이 콘텐츠는 다른 노드가 클러스터는 Kubernetes 가입에서 수행 될 필요가있다.

kubeadm join 10.10.10.10:6443 --token kekvgu.nw1n76h84f4camj6 \
    --discovery-token-ca-cert-hash sha256:4ee74205227c78ca62f2d641635afa4d50e6634acfaa8291f28582c7e3b0e30e

2. 구성 kubectl 도구

mkdir -p /root/.kube
cp /etc/kubernetes/admin.conf /root/.kube/config
kubectl get nodes
kubectl get cs

3. 배포 플란넬 네트워크

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

다섯째, 배포 노드 노드

참고 : 모든 노드 노드에서 다음과 같은 작업을

모든 노드 클러스터 노드는 Kubernetes에 가입하도록 다음 명령을 실행

kubeadm join 10.10.10.10:6443 --token kekvgu.nw1n76h84f4camj6 \
    --discovery-token-ca-cert-hash sha256:4ee74205227c78ca62f2d641635afa4d50e6634acfaa8291f28582c7e3b0e30e

이 명령은 클러스터 (kubeadm 초기화)를 초기화 결과의 내용을 반환합니다.

여섯째, 클러스터 상태 검출

참고 : 마스터 노드에서 다음과 같은 작업

1. 클러스터 명령의 마스터 노드는 입력의 상태를 확인하기 위해이 결과를 리턴 클러스터는 정상이다.

kubectl get nodes
NAME     STATUS   ROLES    AGE     VERSION
master     Ready      master    26m       v1.14.2
node1      Ready      <none>   3m10s   v1.14.2
node2      Ready      <none>   3m         v1.14.2

STATUS 준비, 정상으로 다음 클러스터 상태가되면 콘텐츠에 초점을 것입니다.
2. 클러스터가 정상인지 확인하기 위해 포드를 만듭니다.

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

세븐, 대시 보드를 배포

참고 : 마스터 노드에서 다음과 같은 작업

1. 파일 YAML에게 대시 보드 만들기

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
sed -i 's/k8s.gcr.io/loveone/g' kubernetes-dashboard.yaml
sed -i "160a \ \ \ \ \ \ nodePort: 30001" kubernetes-dashboard.yaml
sed -i "161a \ \ type:\ NodePort" kubernetes-dashboard.yaml

2. 배포 대시 보드

kubectl create -f kubernetes-dashboard.yaml

3. 생성되면, 작동 상태 관련 서비스를 확인

kubectl get deployment kubernetes-dashboard -n kube-system
kubectl get pods -n kube-system -o wide
kubectl get services -n kube-system
netstat -ntlp|grep 30001

4. 대시 보드 파이어 폭스 브라우저에서 액세스 주소를 입력 https://10.10.10.10:30001를
뷰 액세스 인증 토큰 대시 보드 5.

kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
 [root@master ~]# kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
Name:         dashboard-admin-token-kqz88
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: dashboard-admin
              kubernetes.io/service-account.uid: d4e5079b-7fcd-11e9-a14d-000c29c103df

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4ta3F6ODgiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZDRlNTA3OWItN2ZjZC0xMWU5LWExNGQtMDAwYzI5YzEwM2RmIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.C-o5m6PxZqAMiDtshr6ND1sP0xcDKtPPT2paLbC0QiIXuAMO7SyLnbQAHon7WcsV-Gc5g850yNuXEiEuUJGei8nGcOO9ERRFd-AzQ79UXlYEcSNHQNx7vOy6jn05QbFJuQqO29rab4qox643TDuCRmrnMPkktFuDLFwAsFp1l1F49WCi0sgbGr_tfvdwU1pMm9Ures91PBExQFnjzW9ROp1rcHacHZiVsiu9KYE2VvTHP_yzYAdN3guHAvaSjkhP1CYuH2BBMBhJ44Hcg20ldWFiX1RN-6UalnMeApL14mIutusTbm4sWS_rxyxT0TMAobNl-Gd_wrHyctRoDF_zwA

대시 보드의 출력을 사용하여 토큰 6. 로그인합니다.
kubeadm 설치 모범 사례는 Kubernetes
인증 후 로그인 홈 대시 보드의 그림
kubeadm 설치 모범 사례는 Kubernetes

우리는 공공의 이익이 숫자는 정기적으로 IT를 기술 문서를 공유 스캔 환영 다른 기술적 인 문제가 될 수 있습니다, 그들은 항상 상담 할 수 있습니다.

kubeadm 설치 모범 사례는 Kubernetes

추천

출처blog.51cto.com/9099998/2405064