목차
여섯째, 브리지 된 IPv4 트래픽을 iptables로 전달하는 체인 :
8. 모든 노드에 Docker / kubeadm / bubelet 설치
kubeadm 배포 방법 소개
Kubeadm은 공식 커뮤니티에서 출시 한 kubernetes 클러스터를 신속하게 배포하기위한 도구입니다.이 도구는 다음 두 가지 지침에 따라 Kubernetes 클러스터 배포를 완료 할 수 있습니다.
먼저 마스터 노드 kubeadm init를 만듭니다.
둘째, 노드 노드를 현재 클러스터에 가입합니다. $ kubeadm join <마스터 노드의 IP 및 포트>
설치 요구 사항
시작하기 전에 Kubernetes 클러스터 머신의 배치는 Kubernetes 클러스터 배치를위한 전제 조건 인 다음 조건을 충족해야합니다. 그렇지 않으면 설치에 성공할 수 없습니다.
1 하나 이상의 시스템, 운영 체제 CentOS7.x-86_x64
2 하드웨어 구성 : 2GB 이상 RAM, 2 CPU 이상 CPU, 하드 디스크 30GB 이상
3 클러스터의 모든 시스템 간의 네트워크 통신
4 외부 네트워크에 액세스 할 수 있으며 거울을 당겨야합니다.
5 스왑 파티션 금지
최종 목표
1 모든 노드에 Docker 및 kubeadm 설치
2 Kubernetes 마스터 배포
3 컨테이너 네트워크 플러그인 배포
4 Kubernetes 노드 배포 및 Kubernetes 클러스터에 노드 추가
조직
이 경우 클러스터 kubernetes를 배포하려면 3 개의 서버가 필요합니다. 여기에서는 가상 머신 배포를 사용합니다. 각 가상 머신의 해당 역할은 다음과 같습니다.
k8s- 마스터 192.168.30.128
k8s-node1 192.168.30.129
k8s-node2 192.168.30.130
시스템 초기화
방화벽 끄기
systemctl stop firewalld
systemctl disable firewalld
두 개의 가까운 selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0
세 종가 스왑
swapoff -a #临时
vim /etc/fstab #永久 注释掉文件中swap行
네 호스트 이름 설정
hostnamectl set-hostname xxx # 不同虚拟机设置不同的主机名
5 개의 호스트를 마스터에 추가합니다.
cat >> /etc/hosts << EOF
192.168.30.128 k8s-master
192.168.30.129 k8s-node1
192.168.30.130 k8s-node2
EOF
여섯째, 브리지 된 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 # 生效
7 시간 동기화
yum install ntpdate -y
ntpdate time.windows.com
8. 모든 노드에 Docker / kubeadm / bubelet 설치
Kubernetes 기본 CRI (컨테이너 런타임)는 Docker이므로 먼저 Docker를 설치하십시오.
- 1 Docker 설치
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce-18.06.1.ce-3.el7
# Step 4: 开启Docker服务
sudo service docker start
- 2 Alibaba Cloud yum 소프트웨어 소스 추가
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://gk0lyeuc.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
- 3 kubernetes 소스 추가
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
- 4 kubeadm, kubelet 및 kubectl 설치
yum install -y kubelet-1.16.0 kubeadm-1.16.0 kubectl-1.16.0
systemctl enable kubelet
- 5 Kubernetes Master 배포
kubeadm init --apiserver-advertise-address=192.168.30.128 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
중국에서는 기본 풀 미러 주소 k8s.gcr.io에 액세스 할 수 없으므로 여기에 Alibaba Cloud 미러웨어 하우스 주소를 지정하십시오.
5.1 kubectl 도구 사용
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
- 6 개의 설치 포드 네트워크 플러그인
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- Seven은 Kubernetes 노드에 가입
192.168.30.129/130 (노드)에서 클러스터에 새 노드를 추가하고 kubeadm init에서 kubeadm join 명령 출력을 실행합니다.
kubeadm join 192.168.30.128:6443 --token esce21.q6hetwm8si29qxwn \
--discovery-token-ca-cert-hash sha256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5
- 8 개의 테스트 Kubernetes 클러스터
Kubernetes 클러스터에서 포드를 만들고 정상적으로 실행 중인지 확인합니다.
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
방문 주소 : http : // NodeIP : Port
보시다시피 kubeadm은 클러스터를 성공적으로 구축하고 포드 노드를 생성했으며 정상적으로 액세스 할 수 있습니다.