安裝Kubeadm
Kubeadm用於創建Kubernetes集羣
1)配置阿里雲Kubernetes鏡像源
/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
2)安裝Kubeadm相關軟件
yum install kubelet-1.15.3 kubeadm-1.15.3 kubectl-1.15.3 --disableexcludes=kubernetes -y
最後的選項意思是排除yum源裏和kubernentes裏相沖突的一些包
配置基礎環境
1)關閉防火牆和SELinux
驗證getenforce Disabled
$ systemctl stop firewalld
$ systemctl disable firewalld
$ setenforce 0
2)關閉Swap
$ swapoff /dev/xxx
並在/etc/fstab中註釋掉swap(swapon -s查看並關閉)
3)配置Hosts解析
三臺機器的/etc/hosts文件
192.168.26.30 vms30.rhce.cc vms30
192.168.26.31 vms31.rhce.cc vms31
192.168.26.32 vms32.rhce.cc vms32
4)RHEL/CentOS 7需要的特殊配置
開啓一些轉發功能,幾乎所有的數據包通信都是通過iptables做轉發的(三個節點都需要)安裝k8s的時候,會自動創建iptables規則
/etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
5)配置Kubelet
systemctl restart kubelet ; systemctl enable kubelet
- firewall-cmd --set-default-zone=trusted允許所有數據包是能夠直接通信的firewall-cmd–list-all查看,因爲安裝k8s的時候,會自動創建防火牆規則,裝好之後,不能iptables -F清除防火牆規則
- 在安裝kubernetes時候,一定要關閉swap,否則安裝不下去,即使安裝好了,也不能啓動
- 除了kublet外,其他都是已Pod(容器)的方式運行,所以每個節點都要開機啓動kubelet
開始部署
<1>阿里雲後臺開放
6443 2379 2380 10250~10252, 31620 端口
<2>在maser上執行
kubeadm init --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --kubernetes-version=v1.17.2(v1.15.3) --pod-network-cidr=10.244.0.0/16
不指定倉庫,會發現下載的很慢
<3>按照提示執行命令:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
<4>加入節點
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.26.30:6443 --token 6slsrv.w8xb4uvc87he80yn \
--discovery-token-ca-cert-hash sha256:a711b44489854ef7bc16e54ae4bd48257bec5db7f6a68ccea01091af353608be
<5>查看節點
[root@vms30 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
vms30.rhce.cc NotReady master 39m v1.15.3
<6>部署網絡
需要什麼網絡,去官網上下載提供的yaml文件就可以
kubectl apply -f rbac-kdd.yaml
kubectl apply -f calico.yaml
<7>查看集羣
[root@vms30 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
vms30.rhce.cc Ready master 5m40s v1.15.3
vms31.rhce.cc Ready <none> 4m27s v1.15.3