Kubernetes集羣準備

安裝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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章