1. 程式人生 > 其它 >基於Centos7 部署kubernetes實踐

基於Centos7 部署kubernetes實踐

Centos7

  • Linux 5.4.138-1.el7.elrepo.x86_64

docker

  • 20.10.8

Kubernetes

  • v1.21.3
  • flannel v0.14.0

nodes

一.Centos系統優化

1.更換yum源

首先在國內映象源,如華為源下載個Centos7的minimal iso映象,安裝後,先更換為阿里雲的國內yum源。

# 備份原系統的yum源
cd /etc/yum.repo.d
mkdir bak
mv *.repo bak/

# 下載阿里雲的yum源
yum install -y wget
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum update
yum upgrade

# 新裝的server沒有ifconfig命令
yum install -y net-tools

2.配置靜態ip

本實驗基於NAT模式新建三臺虛擬機器,以master節點為例,其他從節點類似。

# 檢視網絡卡 -> 通常是 ens33
ifconfig | ip addr

# 修改配置檔案 
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
vi /etc/sysconfig/network-scripts/ifcfg-ens33
---修改後---
BOOTPROTO="static"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.181.135
NETMASK=255.255.255.0
GATEWAY=192.168.181.2
DNS1=114.114.114.114
-----------

# 重啟網絡卡
service network restart
ifconfig | ip addr 

3.配置hostname

永久修改主機名,以master為例,其他類似。

# master節點,node1 node2同樣設定hostname
hostnamectl set-hostname master

# exit 後重新 login

# 修改hosts檔案,追加模式
cat >> /etc/hosts << EOF
> 192.168.181.135 master
> 192.168.181.136 node1
> 192.168.181.137 node2
> EOF

# 分發hosts檔案,輸入密碼後確認
scp /etc/hosts  node1:/etc/hosts 
scp /etc/hosts  node2:/etc/hosts 

4.配置ssh互信

在master節點上配置,然後分發即可

# 生成公私鑰,一路回車
ssh-keygen

# 分發,不指定公鑰預設用 /root/.ssh/id_rsa.pub
ssh-copy-id root@node1
ssh-copy-id root@node2

# 驗證ssh互信,首次選擇yes
ssh node1
ssh node2

5..升級核心

Centos7的kernel版本為3.10,執行docker和k8s的時候,會出錯,升級較新版本的kernel。

# 檢視核心資訊
uname -rs 

# elrepo pub key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# install elrepo, choose u own version
yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

# 檢視核心版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

# 安裝核心 lt代表long term 長期支援版本
yum --disablerepo='*' --enablerepo=elrepo-kernel install kernel-lt

# 檢視配置
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 0 : CentOS Linux (4.4.186-1.el7.elrepo.x86_64) 7 (Core)
# 1 : CentOS Linux (3.10.0-957.27.2.el7.x86_64) 7 (Core)
# 2 : CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core)

# 預設用更新的核心,重啟主機
grub2-set-default 0 && reboot

6.指令碼執行-> set_env.sh

#!/bin/bash

# 1.配置國內源
cd /etc/yum.repo.d
mkdir bak
mv *.repo bak/

yum install -y wget
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all
yum makecache
yum update
yum upgrade

yum install -y net-tools

# 2.配置靜態IP
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak

cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF
BOOTPROTO="static"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.181.135
NETMASK=255.255.255.0
GATEWAY=192.168.181.2
DNS1=114.114.114.114
EOF

service network restart

# 3.配置hostname,手動分發hosts檔案
hostnamectl set-hostname master


cat >> /etc/hosts << EOF
192.168.181.135 master
192.168.181.136 node1
192.168.181.137 node2
EOF

# 4.ssh互信參考上面,下同

# 5.升級核心

二.docker安裝

三.kubernetes安裝