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...