ubuntu18.04部署k8s集群

之前有用centos7的环境部署过,这次把ubuntu18.04的版本也记录一下,之前的笔记可以查看https://sulao.cn/post/802.html

部署过程差不了太多,这次ubuntu版本部署网络组建选择的是calico,我们直接查看下部署过程吧

系统约定

192.168.137.11     k8s-master
192.168.137.12      k8s-node1
192.168.137.13     k8s-node2

1.配置基础环境和依赖包的安装

在所有节点操作

sudo apt update
sudo apt install gcc gcc+ make apt-transport-https ca-certificates curl gnupg-agent gnupg lsb-release make software-properties-common

登录每台机器修改/etc/hosts,添加以下三行

192.168.137.11     k8s-master
192.168.137.12      k8s-node1
192.168.137.13     k8s-node2

修改每个节点的主机名为上面三个

sudo hostnamectl set-hostname 主机名

关闭swap

sudo swapoff -a

修改/etc/fstab,注释掉swap.img相关内容行

关闭防火墙

systemctl stop ufw
systemctl disable ufw

优化内核参数

cat >/etc/sysctl.d/k8s.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

执行以下命令使内核优化命令生效

sysctl --system

2.安装配置docker

在所有节点操作

由于安装最新版docker可能出现问题,所以我们安装指定版本的docker

首先添加docker官方的GPG 证书

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

然后添加软件源

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

然后更新

sudo apt update

可以使用如下命令查看可安装的版本

sudo apt-cache madison docker-ce

然后我们直接安装最新版

sudo apt install -y docker-ce docker-ce-cli containerd.io

设置docker套接字777权限

sudo chmod 777 /var/run/docker.sock

设置docker开机自启动

sudo systemctl enable --now docker

添加docker配置

cat >/etc/docker/daemon.json<<EOF
{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "exec-opts": [
    "native.cgroupdriver=systemd"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "1"
  },
  "storage-driver": "overlay2"
}
EOF

重启docker,加载配置

sudo systemctl daemon-reload
sudo systemctl restart docker

3.安装配置k8s组件

首先添加安装源,在所有节点操作

在所有节点操作

sudo apt-get update && sudo apt-get install -y apt-transport-https curl
 
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
 
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
 
sudo apt-get update

然后安装kubeadm、kubelet、kubectl等组件

sudo apt install -y kubeadm kubelet kubectl
sudo apt-mark hold kubelet kubectl
sudo systemctl restart kubelet

然后在master节点操作,生成配置文件

cd /etc/kubernetes
kubeadm config print init-defaults > default.yaml

接着我们需要对配置文件default.yaml进行修改

修改集群能被所有ip访问

sed -i "s/1.2.3.4/0.0.0.0/" /etc/kubernetes/default.yaml

修改成国内源

sed -i "s#k8s.gcr.io#registry.cn-hangzhou.aliyuncs.com/google_containers#" /etc/kubernetes/default.yaml

增加pod网段

sed -i '/10.96.0.0\/12/a\  podSubnet: 10.244.0.0\/16' /etc/kubernetes/default.yaml

配置文件默认节点不是主机名,替换成主机名

sed -i "s/name: node/name: $HOSTNAME/g" /etc/kubernetes/default.yaml

接着就是初始化集群操作了

kubeadm init --config=default.yaml

执行以上命令最后会打印如下命令,下面命令是节点加入k8s集群时使用

kubeadm join 192.168.137.11:6443 --token abcdef.0123456789abcdef \
         --discovery-token-ca-cert-hash sha256:33d5007783d142d49c5576c046dc1c08b543ab8d5a1f279535994a8872f7ea52

此时我们可以使用命令查看下node状态,因为还未安装网络插件,所以状态应该是Notready状态

kubectl get node

接着还是在master节点上操作

配置config文件

配置config文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

接着我们在master节点安装网络插件,这次选择的是calico

kubectl apply -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
curl -SLO https://docs.projectcalico.org/manifests/custom-resources.yaml

修改custom-resources.yaml文件内的IP地址段

cidr: 192.168.0.0/16
#改为
cidr: 10.244.0.0/16
kubectl apply -f custom-resources.yaml

执行完成以后等3分钟后再使用kubectl get node 查看集群网络状态

微信截图_20220324001206.png

状态正常,至此k8s集群部署完成


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/821.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。