k8s——admin部署
一 服务器规划序号角色IP内存CPU系统1master192.168.100.10144centos7.92node-1192.168.100.101244centos7.93node-2192.168.100.101344centos7.9应用版本docker20.10.5K8S1.20.4二 服务器初始化所有主机执行2.1 修改主机名称养成好习惯,避免错误操作服务器hostn
·
一 服务器规划
序号 | 角色 | IP | 内存 | CPU | 系统 |
---|---|---|---|---|---|
1 | master | 192.168.100.101 | 4 | 4 | centos7.9 |
2 | node-1 | 192.168.100.1012 | 4 | 4 | centos7.9 |
3 | node-2 | 192.168.100.1013 | 4 | 4 | centos7.9 |
应用 | 版本 |
---|---|
docker | 20.10.5 |
K8S | 1.20.4 |
二 服务器初始化
- 所有主机执行
2.1 修改主机名称
- 养成好习惯,避免错误操作服务器
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2
bash
2.2 修改hosts
cat >> /etc/hosts << EOF
192.168.100.101 k8s-master
192.168.100.102 k8s-node1
192.168.100.103 k8s-node2
EOF
2.3 关闭所有主机防火墙安全机制
- 永久关闭selinux需要重启服务器
systemctl stop firewalld ; systemctl disable firewalld
#永久关闭——需要重启服务器
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#临时关闭
setenforce 0
2.4 关闭交换分区
- 关闭 swap 主要是为了性能考虑。设计者在设计 k8s 的时候,初衷就是解决性能问题,当Linux内存不足时,会启动swap,将部分内存数据存储到磁盘中,这样会使性能下降,如果你的服务器内存较小,可不关闭swap,安装 k8s 的时候可以指定“- -ignore-preflight-errors=Swap”
#临时关闭
swapoff -a
#永久关闭——注释掉swap这一行
vim /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0
2.5 修改内核参数
- 如果容器的宿主机上的 ip_forward 未打开,那么该宿主机上的容器则不能被其他宿主机访问
modprobe br_netfilter
echo "modprobe br_netfilter" >> /etc/profile
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
2.6 配置在线源
- 可选项——可以访问外网配置如下源
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
2.6.1 配置阿里base源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.6.2 配置阿里docker源
yum-config-manager --add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.6.3 配置k8s源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum clean all
yum makecache
2.7 配置内网源
链接:https://pan.baidu.com/s/1zAK0zwbQh_aNW2UW_os23Q
提取码:ip7b
–来自百度网盘超级会员V4的分享
- 包含了kubeadm跟docker
mkdir repo
tar xvf k8s-docker.tar.gz -C ~/repo
#将rpm包拷贝到其他服务器上
scp -r repo/ k8s-node1:~
scp -r repo/ k8s-node2:~
#创建内网源
cat >> /etc/yum.repos.d/k8s-docker.repo << EOF
[k8s-docker]
name=k8s-docker
baseurl=file:///root/repo/k8s-docker
enable=1
gpgcheck=0
EOF
#将内网源scp到其他服务器上
scp -r /etc/yum.repos.d/k8s-docker.repo k8s-node1:/etc/yum.repos.d/
scp -r /etc/yum.repos.d/k8s-docker.repo k8s-node2:/etc/yum.repos.d/
yum clean all
yum makecache
2.8 安装基础软件
- 有的包可能安装不上,按照自己的需求来
- 可以参考这个帖子下载依赖,https://blog.csdn.net/weixin_48485805/article/details/123599555?spm=1001.2014.3001.5501
yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlibdevel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnet
2.9 时间同步
ntpdate cn.pool.ntp.org
crontab -e
* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
2.10 开启ipvs
- 开启 IPVS,不开启 ipvs 将会使用 iptables,但是效率低,所以官网推荐需要开通 ipvs 内核
链接:https://pan.baidu.com/s/1wfNz5H1yjwfu6iaveUce0w
提取码:kquj
–来自百度网盘超级会员V4的分享
#将ipvs.modules上传到/etc/sysconfig/modules/
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs
三 安装docker
3.1 安装docker
// 内网源使用下方命令
yum install docker-ce docker-ce-cli containerd.io -y
// 外网源使用下方命令
yum -y install docker-ce-20.10.5
systemctl start docker && systemctl enable docker.service
3.2 配置加速器
// 配置加速器,内网机无需操作
// registry-mirrors为加速器地址,内网机无需操作,
// exec-opts为把启动系统改为systemd,与kubelet保持一致,内外网都需要更改
cat >> /etc/docker/daemon.json << EOF
{
"registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://registry.dockecn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://humirror.c.163.com","http://qtid6917.mirror.aliyuncs.com","https://rncxm540.mirror.aliyuncs.com"],
"exec-opts":["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl restart docker
systemctl status docker
四 安装k8s
- 链接:https://pan.baidu.com/s/1eCyG5S_VfFX4Jcmtk5DiNg
提取码:u853
–来自百度网盘超级会员V4的分享
4.1 安装k8s
- 所有主机执行
yum install -y kubelet-1.20.4 kubeadm-1.20.4 kubectl-1.20.4
systemctl enable kubelet && systemctl start kubelet
docker load -i k8s-images-v1.20.4.tar.gz
4.2 初始化集群
- master执行,api-server的地址改为master地址!!
kubeadm init --kubernetes-version=1.20.4 \
--apiserver-advertise-address=192.168.100.101 \
--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
参数 | 讲解 |
---|---|
-kubernetes-version | 集群版本 |
apiserver-advertise-address | k8s的master地址 |
image-repository | 手动指定仓库地址,这个公网服务器才可以访问 |
pod-network-cidr | pod网段 |
4.3 node加入集群
- 初始化集群的时候会回显命令,粘贴到node节点就行
kubeadm join 192.168.100.101:6443 --token r1x6dh.u6qbmmmrld6hbjoz \
--discovery-token-ca-cert-hash sha256:1cb8b079e1d4c562a610dddc2b3b737bb5668775f6aa09736239ed37225c9183
#如果没注意回显,则使用下面命令生成token也可以
kubeadm token create --print-join-command
4.4 安装网络插件calico
链接:https://pan.baidu.com/s/1nH0mQTkxX6bCAq_gsw96bQ
提取码:dugg
–来自百度网盘超级会员V4的分享
kubectl apply -f calico.yaml
#查看节点状态,此时已经处于ready状态。
kubectl get nodes
更多推荐
已为社区贡献5条内容
所有评论(0)