Centos7 搭建k8s集群

準備

  • 至少三臺服務器,系統干凈防止沖突
  • 密碼全部相同,方便安裝k8s
  • 最好是云服務器,方便重裝
  • 沒有特別說明的命令全都在k8s-master

服務器添加ssh訪問,能夠ssh訪問的可以跳過

vi /etc/hosts.allow // 在末尾添加 sshd:ALL

掛載數據盤,已經掛載的可以跳過

  • 查看掛載,數據盤一般是/dev/vdb
fdisk -l
  • 分區
fdisk  /dev/vdb
//n->p->1->回車->回車->w
  • 寫入文件系統
mkfs.ext4 /dev/vdb1
  • 掛載節點
//掛載在 /data目錄
mkdir /data
mount /dev/vdb1  /data
  • 查看
df -h
  • 開啟自動掛載
vi /etc/fstab
//打開后,在最后一行加入以下代碼;
/dev/vdb1 /data ext4 defaults 0 1 

修改主機名

  • 這里準備了六臺主機
hostnamectl set-hostname k8s-master1
hostnamectl set-hostname k8s-master2
hostnamectl set-hostname k8s-master3

hostnamectl set-hostname k8s-work1
hostnamectl set-hostname k8s-work2
hostnamectl set-hostname k8s-work3

使用sealos部署k8s集群

  • 文檔地址,以下關于sealos說明來自該文檔中

https://sealyun.com/instructions

  • 在master1上執行
# 下載并安裝sealos, sealos是個golang的二進制工具,直接下載拷貝到bin目錄即可, release頁面也可下載
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos && \
    chmod +x sealos && mv sealos /usr/bin 

# 下載離線資源包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/7b6af025d4884fdd5cd51a674994359c-1.18.0/kube1.18.0.tar.gz

# 安裝一個三master的kubernetes集群
sealos init --passwd 123456 \
    --master 192.168.0.2  --master 192.168.0.3  --master 192.168.0.4  \
    --node 192.168.0.5 \
    --pkg-url /root/kube1.18.0.tar.gz \
    --version v1.18.0 
  • 建議使用1.18.6的版本,可以安裝kubesphere
  • 查看k8s節點情況,全部為ready可以進行下一步
kubectl get nodes

NAME          STATUS   ROLES    AGE   VERSION
k8s-master1   Ready    master   17h   v1.18.6
k8s-master2   Ready    master   17h   v1.18.6
k8s-master3   Ready    master   17h   v1.18.6
k8s-work1     Ready    <none>   17h   v1.18.6
k8s-work2     Ready    <none>   17h   v1.18.6
k8s-work3     Ready    <none>   17h   v1.18.6

安裝longhorn

  • 在所有節點執行
yum install -y iscsi-initiator-utils
systemctl enable --now iscsid
  • 去除master節點的污點,讓其能夠調度pod
kubectl taint nodes --all node-role.kubernetes.io/master-  
  • 安裝helm
version=v3.3.1
curl -LO https://repo.huaweicloud.com/helm/${version}/helm-${version}-linux-amd64.tar.gz
tar -zxvf helm-${version}-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm && rm -rf linux-amd64
  • helm部署longhorn
helm repo add longhorn https://charts.longhorn.io
helm repo update
kubectl create namespace longhorn-system

helm install longhorn \
  --namespace longhorn-system \
  --set defaultSettings.defaultDataPath="/data/longhorn/" \
  --set defaultSettings.defaultReplicaCount=3 \
  --set service.ui.type=NodePort \
  --set service.ui.nodePort=30890 \
  longhorn/longhorn
  • 查看部署情況
helm -n longhorn-system ls
kubectl -n longhorn-system get pods

安裝kubesphere

  • 下載這兩個文件
 https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/kubesphere-installer.yaml
 https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/cluster-configuration.yaml
  • 部署
kubectl apply -f kubesphere-installer.yaml
kubectl apply -f cluster-configuration.yaml
  • 查看部署log
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
kubesphere
  • 查看部署pods
kubectl get pods -A | grep kubesphere
  • 默認賬戶
admin/P@88w0rd
  • 查看某個pod日志
kubectl -n kubesphere-system describe po etcd-65796969c7-bcdzw
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容