K8s集群搭建 kubeadm方案

2021-09-13 03:46:07 字數 4497 閱讀 4551

1、最少3臺centos

a、至少2核cpu+2g記憶體+20g硬碟

b、必須在同一網段

本示例中分配為:

master:10.0.1.86

worker1:10.0.1.87

worker2:10.0.1.88

worker3:10.0.1.89

2、ip addr確認是否有分配到ipv4位址。沒有的話nmtui,automatically connect打上勾

3、用ssh連線

4、禁用防火牆,systemctl stop firewalld & systemctl disable firewalld

5、禁用selinux

a、setenforce 0

b、 vi /etc/selinux/config

c、selinux=disabled

6、禁用swap

a、swapoff -a

b、vi /etc/fstab,注釋掉swap

7、新增k8s源,建議使用阿里或者163的(不可以科學上網的方式)

cat [kubernetes]

name=kubernetes

baseurl=

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=

eof8、安裝kubelet、kubeadm、kubectl

yum install -y kubelet kubeadm kubectl

9、kube-proxy開啟ipvs

vi /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

modprobe br_netfilter

sysctl -p /etc/sysctl.d/k8s.conf

cat > /etc/sysconfig/modules/ipvs.modules <#!/bin/bash

modprobe -- ip_vs

modprobe -- ip_vs_rr

modprobe -- ip_vs_wrr

modprobe -- ip_vs_sh

modprobe -- nf_conntrack_ipv4

eofchmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

接下來還需要確保各個節點上已經安裝了ipset軟體包yum install ipset。 為了便於檢視ipvs的**規則,最好安裝一下管理工具ipvsadm yum install ipvsadm。

10、安裝docker

yum install docker

systemctl start docker & systemctl enable docker

11、設定開機啟動kubelet

systemctl enable kubelet

12、修改hostname(非常重要,如果hostname相同會導致問題)

hostnamectl set-hostname ***x

13、初始化

master節點

如果出現timeout是因為docker無法自動獲取到images導致的,可以兩種方式解決

a、手動去pull並修改標籤

b、修改docker源的方式來解決

14手動pull images

docker pull mirrorgooglecontainers/kube-apiserver:v1.13.0

docker pull mirrorgooglecontainers/kube-controller-manager:v1.13.0

docker pull mirrorgooglecontainers/kube-scheduler:v1.13.0

docker pull mirrorgooglecontainers/kube-proxy:v1.13.0

docker pull mirrorgooglecontainers/pause:3.1

docker pull mirrorgooglecontainers/etcd:3.2.24

docker pull coredns/coredns:1.2.6

docker tag mirrorgooglecontainers/kube-proxy:v1.13.0  k8s.gcr.io/kube-proxy:v1.13.4

docker tag mirrorgooglecontainers/kube-scheduler:v1.13.0 k8s.gcr.io/kube-scheduler:v1.13.4

docker tag mirrorgooglecontainers/kube-apiserver:v1.13.0 k8s.gcr.io/kube-apiserver:v1.13.4

docker tag mirrorgooglecontainers/kube-controller-manager:v1.13.0 k8s.gcr.io/kube-controller-manager:v1.13.4

docker tag mirrorgooglecontainers/etcd:3.2.24  k8s.gcr.io/etcd:3.2.24

docker tag coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6

docker tag mirrorgooglecontainers/pause:3.1  k8s.gcr.io/pause:3.1

15使用kubeadminit

面會出現錯誤,一定是牆的問題了:

因為前面設定了**,導致

kubelet

訪問api server

不通,所以需要關閉

或者下面這個更優雅的方法

gemfield@sl:~$ export no_proxy=192.168.1.118

16,關閉http proxy後再次kubeadm init

這是因為前面已經執行過一次

kubeadm init

了(其實是好幾次

...)。這個時候需要加個引數來忽略到這些:

--ignore-preflight-errors=all 17

終於成功了。注意最後的這

3段輸入,分別是:為正常非

root

使用者所做的配置;部署

pod network

;新增其它

node

到這個集群(注意

token

是保密的,不要洩露給別人)。下面會繼續提到。 重啟

kubelet service

的方式:

gemfield@master:~$ sudo systemctl restart kubelet.service

Kubeadm搭建K8S集群

搭建集群的方式有兩種 kubeadm 和 二進位制安裝包搭建,這裡我們就先對kubeadm的方式做乙個搭建 永久關閉selinux 所有節點 永久關閉swap分割槽 所有節點 設定主機名 逐一設定 檢查是否設定正確 在master新增hosts master單節點設定 將橋接的ipv4流量傳遞到ip...

k8s搭建集群

k8s由兩種型別資源組成 分別是 master 和 nodes k8s的集群部署方式有三種 1.kubeadm 2.minikube 3.二進位製包 前兩種為自動部署,簡化操作。說一說手動部署的 二進位製包 k8s集群部署步驟 1.關閉防火牆 firewall cmd state systenctl...

K8s 集群搭建

目前生產部署 kubernetes 集群主要有兩種方式 kubeadm 與 二進位製包 一 kubeadm 概念 kubeadm 是乙個 k8s 部署工具,提供 kubeadm init 和 kubeadm join,用於快速部署 kubernetes 集群。官網 二 二進位製包 總之 kubead...