- 搭建环境要求:
- CPU:2C或更多
- 内存:2G以上
- DISK:50G
- 禁止swap分区
- 时间一定要同步一致
- 基础安装配置:
- 修改主机名
#hostnamectl set-hostname k8s-master
- 关闭防火墙
#systemctl stop firewalld
#systemctl disable firewalld
#sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
- 关闭交换分区
#swapoff -a && sysctl -w vm.swappiness=0
- 配置hosts文件
#cat <<EOF > /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.141 k8s-master
192.168.2.141 k8s-node1
EOF
- 优化内核参数
#cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#sysctl --system
- 部署安装
- 安装docker
#curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
#systemctl enable docker && systemctl start docker
- 国内镜像加速
#cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://6ze43vnb.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
完成保存后执行重启Docker命令,如下:
# systemctl restart docker
查看docker版本
#docker --version
- 建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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
- 安装K8S组件
#yum install -y kubelet kubectl kubeadm kubernetes-cni
查询软件版本
yum list --showduplicates xxxx--disableexcludes=kubernetes
kubectl/kubeadm/kubernetes-cni
#systemctl enable kubelet
- 部署k8s
K8s初始化
#kubeadm init --image-repository registry.aliyuncs.com/google_containers --apiserver-advertise-address 192.168.2.141 --ignore-preflight-errors=Swap --pod-network-cidr=10.244.0.0/16
相关参数说明:
----image-repository # 指定安装镜像源
----kubernetes-version=vxxxxx # 指定安装k8s版本,如果不指定默认使用最新版本
----apiserver-advertise-address 192.168.2.141 #这里是apiserver的地址,也就master主机IP地址
----pod-network-cidr=10.244.0.0/16# 这个是后期创建pod时候使用IP地址段
初始化过程取决于网络速度,稍等片刻。。。。
- 配置kubectl
#mkdir -p $HOME/.kube
#cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
#chown $(id -u):$(id -g) $HOME/.kube/config
查看kubectl状态
# kubectl get nodes
kubectl命令自动补全
#yum install bash-completion
#source <(kubectl completion bash)
#echo "source <(kubectl completion bash)" >> ~/.bashrc
可以看到 status 为 NotReady, 因为网络组件还没有配置, 下面配置 flannel。
# kubectl get pods --all-namespaces
- 安装Pod网络插件(CNI)
#wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
再次查看
# kubectl get pods --all-namespaces
#kubectl get nodes
# kubectl get cs
Master节点安装完成
- Tips
- 如果忘记集群加入,可以重新生成
- kubeadm token create --print-join-command