K8s部署文档
k8s部署文档
一、环境配置
服务器准备3台,核心数必须大于2核,内存大于2G
1、配置hosts
cat >> /etc/hosts << EOF
192.168.1.11 master
192.168.1.12 node1
192.168.1.13 node2
EOF
2、设置主机名,三台分别执行
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
3、关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
4、禁用SELinux,让容器可以顺利地读取主机文件系统
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
5、关闭swap
Swap是操作系统在内存吃紧的情况申请的虚拟内存,按照Kubernetes官网的说法,Swap会对Kubernetes的性能造成影响,不推荐使用Swap
临时关闭swap
swapoff -a
永久关闭swap
vim /etc/fstab
#注释swap行
6、为了切换系统方便,这里做一个免密操作
在本机(此主机名记为 nodeA)自动以rsa算法生成公私钥对
ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ""
配置公钥到其他节点(此主机名记为 node1),输入对方密码即可完成从nodeA到node1和node2的免密访问
ssh-copy-id node1
ssh-copy-id node2
7、配置yum源
1、yum安装wget命令
yum install -y wget
2、进入目录下载docker源
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、下载阿里源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
4、查看当前系统有效的repolist
yum repolist
8、确保服务器时间一致
重启同步系统时间(保证多台服务的时间一致)
systemctl restart chronyd
二、开始安装
1、安装docker
yum -y install docker-ce
2、设置开机启动
systemctl enable docker && systemctl start docker
3、配置镜像加速
cat >> /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://5z6d320l.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
4、加载并重启
sudo systemctl daemon-reload && sudo systemctl restart docker
5、将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
6、查看信息
sysctl --system
如果后面始化报错,则将显示 。。ip6tables = 0 的记录改为1
2、开始安装kubelet kubeadm kubectl
1、在该目录中新建kubernetes仓库文件
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[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.gpgEOF
2、安装kubelet kubeadm kubectl
yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=Kubernetes
3、启动kubelet并设置开机自启
systemctl enable kubelet && systemctl start kubelet
初始化(版本一定要与安装的一样,可以)kubeadm version 来查看版本信息
(注意,这里只有主节点才执行,node节点不要做此操作)
4、初始化集群
kubeadm init --apiserver-advertise-address=192.168.1.11 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.20.9 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
#这里注意修改红色IP地址,改为本机内网地址
5、拉取flannel网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
当节点状态变成ready,主节点安装成功
注意:配置kubenetes的flannel网络的时候, 出现以下报错
The connection to the server localhost:8080 was refused - did you specify the right host or port?
解决方法:
export KUBECONFIG=/etc/kubernetes/admin.conf
将admin.conf复制到各个节点后即可以在node节点上也能执行kubectl命令查看
或者使用calico网络插件
使用网络拉取calico网络yaml文件
curl https://docs.projectcalico.org/manifests/calico.yaml -O
根据版本选择下载calico网络
curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O
启动服务
kubectl apply -f calico.yaml
6、将node节点加入master节点
主节点安装完成后会生成一个token值,把这个token复制出来,暂存起来,以免弄丢,节点加入集群是需要这个token
kubeadm join 192.168.1.11:6443 --token 8fjzge.xmszmqh2fq7d2epb \
--discovery-token-ca-cert-hash sha256:9b2a26221de7a713a35a777969d8089e850ad3dcef202417fd18c41968950d2a
(各位生成的token类似于这样一串)
更多推荐
所有评论(0)