1,安裝CentOS-7.4-64Bit鏡像node
2,部署NAT網絡,參考節點規劃,分配靜態ip(參考www.hifreud.com/2018/08/10/…)linux
完成後,主機與虛擬機之間, 虛擬機與虛擬機之間,虛擬機與外部網絡都要互通git
本文準備部署一個 一主兩從 的 三節點 Kubernetes集羣,總體節點規劃以下表所示:docker
主機名 | IP | 角色 |
---|---|---|
k8s-master | 192.168.233.3 | k8s主節點 |
k8s-worker-1 | 192.168.233.4 | k8s從節點 |
k8s-worker-2 | 192.168.233.5 | k8s從節點 |
如下全部操做基於root用戶json
全部節點關閉防火牆vim
systemctl disable firewalld.service systemctl stop firewalld.service複製代碼
禁用SELINUXcentos
setenforce 0vim /etc/selinux/configSELINUX=disabled複製代碼
全部節點永久關閉 swapapi
vim /etc/fstab註釋掉swap那一行複製代碼
設置iptablesbash
vim /etc/sysctl.confnet.bridge.bridge-nf-call-iptables = 1複製代碼
設置全部節點主機名網絡
hostnamectl --static set-hostname k8s-master
hostnamectl --static set-hostname k8s-worker-1
hostnamectl --static set-hostname k8s-worker-2複製代碼
全部節點 主機名/IP加入 hosts解析
編輯 /etc/hosts
文件,加入如下內容:
192.168.233.3 k8s-master192.168.233.4 k8s-worker-1192.168.233.5 k8s-worker-2複製代碼
爲了方便配置生效,虛擬機重啓
虛擬機拍攝快照(方便恢復到此狀態)
爲了方便添加軟件源,支持 devicemapper 存儲類型,安裝以下軟件包
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2複製代碼
添加 Docker 穩定版本的 yum 軟件源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo複製代碼
虛擬機中可能有docker-ce-selinux 版本太低,所以執行
yum -y install https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.3.ce-1.el7.noarch.rpm複製代碼
安裝 Docker。
yum -y install docker-ce-17.03.2.ce複製代碼
添加加速器到配置文件
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF複製代碼
啓動服務
systemctl daemon-reload
systemctl start docker
systemctl enable docker.service複製代碼
打開iptables內生的橋接相關功能,已經默認開啓了,沒開啓的自行開啓
cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
cat /proc/sys/net/bridge/bridge-nf-call-iptables複製代碼
kubeadm
使用yum
命令進行安裝,使用國內阿里雲的源,能夠安裝成功
cat >> /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF複製代碼
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF複製代碼
修改完成後執行sysctl --system
應用。
kubelet:負責管理pods和它們上面的容器,維護容器的生命週期
kubeadm:安裝K8S工具
kubectl:K8S命令行工具
yum -y install kubeadm-1.13.0 kubelet-1.13.0 kubectl-1.13.0 kubernetes-cni-0.6.0 --disableexcludes=kubernetes複製代碼
修改配置文件
vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
KUBE_PROXY=MODE=ipvs複製代碼
設爲開機自啓
systemctl enable kubelet.service`複製代碼
啓動kubelet
systemctl start kubelet.service複製代碼
準備kubeadm 1.1 配置文件
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
controllerManager:
extraArgs:
horizontal-pod-autoscaler-use-rest-clients: "true"
horizontal-pod-autoscaler-sync-period: "10s"
node-monitor-grace-period: "10s"
apiServer:
extraArgs:
runtime-config: "api/all=true"
kubernetesVersion: "stable-1.13"複製代碼
執行
kubeadm init --config kubeadm.yaml複製代碼
成功以後
輸出
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of machines by running the following on each node
as root:
kubeadm join 192.168.233.3:6443 --token 2t6fi0.g7b6593ifnhxu5na --discovery-token-ca-cert-hash sha256:*******************************************複製代碼
仔細看輸出內容,須要先執行輸出內容中的
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
複製代碼
這條命令是worker節點加入master節點的命令,先保存起來。(sha256:*******************************************是作了脫敏處理,以實際輸出爲準)
kubeadm join 192.168.233.3:6443 --token 2t6fi0.g7b6593ifnhxu5na --discovery-token-ca-cert-hash sha256:*******************************************複製代碼
部署網絡插件
kubectl apply -f https://git.io/weave-kube-1.6複製代碼