環境
centos7
內核版本 3.10.0-1062.el7.x86_64
| 主機名 | IP | 配置 |
| cka-master01 | 192.168.176.66 | 2G2核 |
| cka-slave01 | 192.168.176.67 | 1G1核 |
| cka-slave02 | 192.168.176.68 | 1G1核 |
步驟1-5,master和worker節點都要進行
步驟6,只需master節點執行
步驟7,只需worker節點執行
步驟8,在master節點上進行驗證
1.修改主機名
hostname cka-master01
hostname cka-slave01
hostname cka-slave02
vim /etc/sysconfig/network
# 在檔案中加入對應的主機名
2.修改hosts檔案
vim /etc/hosts
192.168.176.66 cka-master01
192.168.176.67 cka-slave01
192.168.176.68 cka-slave02
3.關閉swap磁區、selinux、防火墻
swapoff -a
vim /etc/fstab
找到下面行在前面加一個 # 注釋 swap功能
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0

4.安裝docker
# 卸載原來安裝的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 安裝相關依賴
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加docker的阿里云yum源
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安裝docker
yum install -y \
containerd.io-1.2.13 \
docker-ce-19.03.11 \
docker-ce-cli-19.03.11
# 啟動docker
systemctl start docker
# 查看docker版本
docker version
# 設定docker開機自啟
systemctl enable docker
5.安裝kubeadm、kubelet、kubectl
# 配置阿里云kubernetes的yum源
cat <<EOF > /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
EOF
# 安裝kubeadm、kubelet、kubectl
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
6.master節點初始化
(注意:matser至少要有2G2核)
kubeadm init \
--apiserver-advertise-address=192.168.176.66 \ # 填寫master的ip地址
--image-repository registry.aliyuncs.com/google_containers \ # 設定從阿里云拉取相應的鏡像
--pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 下載網路插件-calico
curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml
# 也可以選擇flannel作為網路插件
curl https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -O
kubectl apply -f kube-flannel.yml
7.加入worker節點
在worker節點中執行以下命令,該命令會在執行kubeadm init命令后出現
kubeadm join 192.168.176.66:6443 --token nwiykd.avt9oedno8wwpixb \
--discovery-token-ca-cert-hash sha256:8298749505e742ba38d99b50044e38fc3a2fc1e7ebe70dcedc2fa305e167b56f
# 如果忘記保存該條命令了或者token失效了,可以執行下面的命令,重新生成kubeadm join相關token及命令
kubeadm token create --print-join-command
8.驗證
kubectl get pods -A
如果所有Pod都處于Running狀態,說明集群正常運行,如果發現有狀態錯誤的Pod,執行kubectl describe pod <pod_name> -n kube-system查看錯誤原因,常見的錯誤一般是鏡像沒有下載完成

注意:
kubernetes1.18.6之后的一個坑

出現這種情況,是/etc/kubernetes/manifests下的kube-controller-manager.yaml和kube-scheduler.yaml設定的默認埠是0,在檔案中注釋掉就可以了
vim /etc/kubernetes/manifests/kube-controller-manager.yaml
vim /etc/kubernetes/manifests/kube-scheduler.yaml
kube-controller-manager.yaml

kube-scheduler.yaml

所有機器重啟kubelet
systemctl restart kubelet.service

備注:
自動補全功能(在使用kubectl命令的時候按tab鍵就可以自動補啦)
在master節點上執行以下命令
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/224128.html
標籤:其他
上一篇:(五)Redis的sacn
下一篇:大資料技術實驗報告
