镜像下载
使用阿里云地址CentOS-7-x86_64-DVD-2009.iso
Win10 Hyper-v安装
打开任务管理器查看是否支持虚拟化,没有启用需要金融BIOS开启
对于win10 家庭版需要手动安装hyper-v
新建文件hyperf-v.bat
复制代码
pushd "%~dp0"dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txtfor /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"del hyper-v.txtDism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
Hyper-v虚拟机创建
打开Hyper-v管理器
新建虚拟机,按照步骤执行
点击虚拟机交换管理器,新建虚拟交换机,选择内部
打开系统-网络适配器-vEthernet (Default Switch)-查看IP,后面设置虚拟机IP需要
主机规划
| 角色 | IP地址 | 操作系统 | 配置 |
|---|---|---|---|
| Master | 172.19.160.100 | CentOS7.9,基础设施服务器 | 2核CPU,2G内存,50G硬盘 |
| Node1 | 172.19.160.101 | CentOS7.9,基础设施服务器 | 2核CPU,2G内存,50G硬盘 |
| Node2 | 172.19.160.102 | CentOS7.9,基础设施服务器 | 2核CPU,2G内存,50G硬盘 |
centos7安装
省略
环境初始化
检查系统版本
cat /etc/redhat-release
关闭selinux
查看是否开启
getenforce
永久关闭,重启生效
sed -i 's/enforcing/disabled/' /etc/selinux/config
关闭swap分区
重启生效
sed -ri 's/.*swap.*/#&/' /etc/fstab
关闭防火墙
关闭
systemctl stop firewalld
禁止启动
systemctl disable firewalld
设置主机名
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2
主机名解析
cat >> /etc/hosts << EOF172.19.160.100 k8s-master172.19.160.101 k8s-node1172.19.160.102 k8s-node2EOF
时间同步
ntpdate time.windows.com
增加k8s配置
cat > /etc/sysctl.d/k8s.conf << EOFnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1vm.swappiness = 0EOF
加载模块
modprobe br_netfilter
生效
sysctl --system
开启ipvs
yum -y install ipset ipvsadm
所有节点执行
cat > /etc/sysconfig/modules/ipvs.modules <<EOF#!/bin/bashmodprobe -- ip_vsmodprobe -- ip_vs_rrmodprobe -- ip_vs_wrrmodprobe -- ip_vs_shmodprobe -- nf_conntrack_ipv4EOF
运行
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
重启
reboot
安装Docker、kubeadm、kubelet和kubectt
安装docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.3.ce-3.el7
systemctl enable docker && systemctl start docker
docker version
设置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["阿里云镜像加速器地址"],"live-restore": true,"log-driver":"json-file","log-opts": {"max-size":"500m", "max-file":"3"}}EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装kubeadm、kubelet和kubect
修改阿里源
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
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
vim /etc/sysconfig/kubelet
修改
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"KUBE_PROXY_MODE="ipvs"
systemctl enable kubelet
部署k8s
查看k8s所需镜像
kubeadm config images list
部署master节点
kubeadm init \--apiserver-advertise-address=172.19.160.100 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.18.0 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16
根据提示信息
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
生成永不过期token
kubeadm token create --ttl 0 --print-join-command
部署node节点
kubeadm join 172.19.160.100:6443 --token zfmjw4.t8rdmpxpyu12s5bq --discovery-token-ca-cert-hash sha256:2df11c34aab096b68202042af1a8ecebabb005b008e122f8410e5ed9b3ab8644
部署网络插件
查看状态
kubectl get nodes
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
启动flannel
kubectl apply -f kube-flannel.yml
查看进度
kubectl get pods -n kube-system
查看集群健康
kubectl get cs
kubectl cluster-info
部署Nginx
部署
kubectl create deployment nginx --image=nginx:1.14-alpine
暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
查看状态
kubectl get pods,svc
