1,master節點硬件要求:
cpu:至少2核
內存:至少2G
2,禁用全部節點swap:
swapoff -a
註釋/etc/fstab文件中swap一行
3,禁用全部節點selinux:
setenforce 0
修改/etc/selinux/config
4,禁用全部節點防火牆:
sytemctl stop firewalld
systemctl disable firewalld
5,修改節點主機名:
hostname xxx
hostnamectl set-hostname xxx
6,全部節點將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,全部節點開啓ip轉發:
echo 「net.ipv4.ip_forward = 1」>>/etc/sysctl.confnode
1,全部節點添加k8s源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[k8s]
name=k8s
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
EOFlinux
2,全部節點安裝docker
yum install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.9-3.el7.x86_64.rpm https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.9-3.el7.x86_64.rpm -y --nobestgit
全部節點都須要修改docker源:
默認爲 /etc/docker/daemon.json,非默認路徑須要修改 dockerd 的 –config-file,在該文件中加入以下內容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}github
速度仍是很慢,以下方法:
http://f1361db2.m.daocloud.io
或者
"registry-mirrors":["https://f3lu6ju1.mirror.aliyuncs.com"]web
3,全部節點安裝k8s
yum install kubeadm kubectl kubelet -ydocker
4,全部節點啓用docker
systemctl enable docker
systemctl start docker
5,全部節點啓用kubelet
systemctl enable kubelet
6,初始化master節點
kubeadm init \
--apiserver-advertise-address=192.168.122.100 \
--image-repository=registry.aliyun.com/google_containers \
--kubernetes-version=v1.18.0 \
--service-cidr=10.1.1.0/16 \
--pod-network-cidr=10.0.0.0/16
7,根據初始化完成後的提示在主節點執行
json
在其他各節點執行
centos
8,在主節點執行docker images,結果以下
在其他節點執行,結果以下
9,在主節點執行kubectl get nodes,結果以下
10,在主節點安裝網絡組件,flannel(或者calico,或者其它)
安裝前,查看,執行kubectl get pods -n kube-system,結果以下:
執行安裝:
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.ymlapi
安裝後,查看,執行kubectl get pods -n kube-system
若是出現
須要等待拉取鏡像若是一分鐘左右status沒有變爲Running,或者出現以下所示:網絡
則是鏡像源速度太慢所致
此時,修改kube-flannel.yml文件中的源便可解決
sed -i 's#quay.io/coreos#jmgao1983#g' kube-flannel.yml
kubectl apply -f kube-flannel.yml
再次執行 kubectl get pods -n kube-system
有一個flannel鏡像拉取失敗,可是不影響使用,應該是有一個ok就能夠了(這個後面發現是有問題的,對應節點狀態是notready)
執行 kubectl get node
若是某個節點的status一直爲Notready,
那麼,在該節點以下操做
mkdir -p /etc/cni/net.d/
scp root@192.168.122.100/etc/cni/net.d/10-flannel.conflist /etc/cni/net.d/
其中,192.168.122.100爲任意一個狀態正常的節點ip
這樣的結果,纔是正常狀態
配置好後重啓kubelet,docker,而後等待5分鐘全部就能夠拉取完全部鏡像
狀態終於變爲Ready
後續加入兩個從節點
注意:從節點加入後,須要在該節點重啓kubelet,docker,而且等待該節點拉取鏡像,運行容器
11,安裝dashboard(web管理面板)
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml
kubectl apply -f recommended.yaml
獲取web管理面板所在節點
能夠看見,web管理面板在節點node2,端口爲30000
訪問https://192.168.122.102:30000
獲取token,而後使用token登陸
kubectl -n kube-system describe $(kubectl -n kube-system get secret -o name | grep namespace) | grep token