安装
Kubernetes集群的安装 安装 Kubernetes集群的安装
如:安装1个Master节点和3个Node节点的Kubernetes集群
//以下步骤IP根据实际情况修改
(1)关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
1)所有节点均需关闭防火墙(一般用于内部网络,若外网则需手动设置)
(2)关闭SELinux
vim /etc/sysconfig/selinux
1)所有节点均需关闭SELinux(Kubernetes不支持SELinux)
2)此设置为重启后生效,立即生效需执行“setenforce 0”
(3)关闭交换分区
vim /etc/fstab
1)所有节点均需关闭交换分区(Kubernetes为了性能,不允许使用交换分区)
2)此设置为重启后生效,立即生效需执行“swapoff -a”
(4)Master节点和Node节点配置域名解析
vim /etc/hosts
(5)添加Kubernetes的YUM源
cat > /etc/yum.repos.d/kubernetes.repo << EOF[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF
1)默认为国外的YUM源,可使用阿里云的加快安装;
(6)安装容器引擎docker
1)下载安装所需安装包:yum install -y yum-utils device-mapper-persistent-data lvm2
2)指定镜像仓库:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3)安装docker:yum install -y docker-ce docker-ce-cli containerd.io
4)若Docker后无法拉取镜像,可在/etc/docker/daemon.json文件添加以下内容:
{"registry-mirrors": ["http://hub-mirror.c.163.com"]}{"registry-mirrors": ["http://hub-mirror.c.163.com", "https://registry.docker-cn.com"]}
// CentOS8中预安装了podman容器(与docker冲突)
卸载podman命令:yum remove -y podman
//安装containerd.io命令:yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
(7)Master节点和Node节点配置并启动docker,且设置为开机自启
1)vim /usr/lib/systemd/system/docker.service
在ExecStart后添加“–exec-opt native.cgroupdriver=systemd”
2)systemctl daemon-reload
3)systemctl start docker
4)systemctl enable docker
(8)安装Kubernetes软件
Master节点:
yum -y install kubeadm kubelet kubectl
Node节点
yum -y install kubeadm kubelet
1)kubelet:节点代理
2)kubeadm:部署多节点Kubernetes集群的工具
3)kubectl:和Kubernetes交互的命令行工具
(9)Master节点启动kubelet,并设置为开机自启
systemctl start kubelet
systemctl enable kubelet
1)仅Master节点启动
(10)Master节点启用NET.BRIDGE.BRIDGE-NF-CALL-IPTABLES内核选项
sysctl -w net.bridge.bridge-nf-call-iptables=1
echo "net.bridge.bridge-nf-call-iptables=1" > /etc/sysctl.d/k8s.conf
1)若报错,可运行“modprobe br_netfilter”(添加模块)
(11)初始化Master节点
kubeadm init --apiserver-advertise-address=192.168.1.107 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
1)部署必要组件(etcd、API服务器、Scheduler和Controller Manager等);
2)需记录初始化完成后的令牌,以使其他节点加入
(12)Node节点使用Master节点生成的身份令牌加入
1)Node1节点加入;
2)Node2节点加入
(13)设置Master节点的环境变量(使Master节点可调用kubectl命令)
mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/configecho "export KUBEConFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profilesource ~/.bash_profile
1)若持续报错,可调用export命令添加至环境变量
export KUBEConFIG=/etc/kubernetes/admin.conf
(14)Master节点添加网络组件,并调用
1)下载flannel.yml文件:
wget https://raw.githubusercontent.com/coreos/flannel/master/documentation/kube-flannel.yml
//若无法连接,则在/etc/hosts添加:“199.232.68.133 raw.githubusercontent.com”
2)添加:kubectl apply -f kube-flannel.yml
//若无法下载,则可手动编写kube-flannel.yml文件
(15)Master节点验证
1)验证相关组件:kubectl get pod -n kube-system
2)验证节点:kubectl get node