安装信息:
操作系统:Ubuntu 18.04 x86_64 容器运行时引擎:Docker 19.03.ce
一、环境准备
1、主机时间同步
sudo systemctl start chronyd.service
sudo systemctl enable chronyd.service
#没有的话需要提前安装 apt install chrony
2、防火墙设置
sudo ufw disable && sudo ufw status
3、禁用sawp
sudo swapoff -a
#!!!永久禁用Swap设备需要修改/etc/fstab配置文件,注释所有文件系统类型为swap的配置行。
二、安装容器运行时docker
1、更新必要的安装包
sudo apt update
sudo apt install -y apt-transport-https ca-certificates \
curl gnupg-agent software-properties-common
2、添加Docker官方的GPG证书
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
3、apt添加稳定版本的Docker-CE仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
#为了提升程序包下载速度,建议使用Docker-CE在国内的镜像仓库
https://download.docker.com/linux/ubuntu替换为
https://mirrors.aliyun.com/docker-ce/linux/ubuntu,即可使用阿里云的镜像
4、更新apt索引后安装docker-ce
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
5、配置Docker,编辑配置文件/etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
6、启动Docker服务
sudo systemctl daemon-reload
sudo systemctl start docker.service
sudo systemctl enable docker.service
三、安装kubeadm、kubectl、kubelet
目前国内的阿里云镜像站(http://mirrors.aliyun.com)及Azure镜像站(http://mirror.azure.cn/)等为此项目提供了镜像服务
1、更新apt索引信息后安装必要的程序包
sudo apt update && apt install -y apt-transport-https
2、添加Kubernetes官方程序密钥
sudo curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
3、添加Kubernetes程序包仓库,编辑文件/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
4、更新程序包索引并安装程序包
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
#安装指定版本
apt install -y kubelet=1.19.0-00 kubeadm=1.19.0-00 kubectl=1.19.0-00
apt install -y kubelet=1.18.8-00 kubeadm=1.18.8-00 kubectl=1.18.8-00
5、主机名解析
192.168.110.130 k8s-master01 k8s-api.io
192.168.110.131 k8s-node01
三、初始化和加入集群
相关镜像的默认获取仓库位于gcr.io站点。因某些原因,该站点上的服务通常需要借助国内的镜像服务完成,诸如
gcr.azk8s.cn/google_containers和registry.aliyuncs.com/google_containers等
1、初始化
sudo kubeadm init \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.19.0 \
--apiserver-advertise-address 192.168.110.130 \
--pod-network-cidr 10.244.0.0/16 \
--token-ttl 0
–control-plane-endpoint:控制平面的固定访问端点,可以是IP地址或DNS名称,作为集群管理员与集群组件的kubeconfig配置文件的API Server的访问地址。单控制平面部署时可以不使用该选项
–token-ttl:共享令牌的过期时长,默认为24小时,0表示永不过期。为防止不安全存储等原因导致的令牌泄露危及集群安全,建议为其设定过期时长
2、配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3、部署网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
4、添加工作节点
sudo kubeadm join k8s-api.ilinux.io:6443 --token
dnacv7.b15203rny85vendw \
> --discovery-token-ca-cert-hash sha256:61ea08553de1cbe76a3f8b14322cd276c57cbebd5369bc362700426e21d70fb8
5、查看节点
kubectl get nodes