本文主要介绍Docker和Kubernetes的安装步骤,安装Docker采用官网提供的安装方式,安装k8s采用官网提供的kubeadm方式。其中镜像地址都采用了国内阿里镜像地址。
k8s集群服务器初始化(准备工作) 关闭防火墙systemctl stop firewalld #临时关闭 systemctl disable firewalld #永久关闭关闭swap分区
#临时关闭 swapoff -a #永久关闭 vi /etc/fstab #注释掉/dev/mapper/centos-swap swap 整行允许 iptables 检查桥接流量
cat <将 SELinux 设置为 permissive 模式 # 将 SELinux 设置为 permissive 模式(相当于将其禁用) sudo setenforce 0 #临时关闭 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config #永久关闭设置主机名称并在master节点添加hosts如果集群主机日期不一致请同步日期
分别修改主机名
hostnamectl set-hostname k8smaster01 hostnamectl set-hostname k8snode01 hostnamectl set-hostname k8snode02在master节点添加hosts,IP改为对应主机IP
cat >> /etc/hosts << EOF 192.168.211.142 k8smaster01 192.168.211.143 k8snode01 192.168.211.144 k8snode02 EOF此处省略
参考内容kubeadm官网安装教程
安装Docker参考内容:Docker官网安装教程
卸载旧版本
这里选择的是centos安装sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine安装Dokcer安装包sudo yum install -y yum-utils设置镜像#官网镜像 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #国内阿里镜像(推荐) sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装Docker Enginesudo yum install docker-ce docker-ce-cli containerd.io启动Dokcersudo systemctl start docker配置 Docker 守护程序sudo mkdir /etc/docker cat <设置 Docker 并在启动时启用 sudo systemctl enable docker sudo systemctl daemon-reload sudo systemctl restart docker安装 kubeadm、kubelet 和 kubectl 添加yum源# 官网google源(不推荐) cat <安装 kubeadm、kubelet 和 kubectl sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes设置kubelet开机启动sudo systemctl enable --now kubelet在Master节点初始化平面节点image-repository:指定国内阿里镜像
pod-network-cidr:指定pod网络(不与主机在同一网段即可)
sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16在Master节点使用kubectl工具执行kubeadm init之后生成的,复制粘贴即可。
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config安装 Pod 网络附加组件任一方式均可
flannel方式 在master中配置网络映射#因网站被墙,需要在/etc/hosts文件添加映射 cat >> /etc/hosts << EOF 199.232.68.133 raw.githubusercontent.com EOF在master中下载kube-flannel.yml文件wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml下载flannel docker镜像导入docker仓库
访问:https://github.com/flannel-io/flannel/releases
下载对应版本flannel docker镜像,如flanneld-v0.14.0-amd64.docker,并上传到3台服务器。
3台机器把flannel镜像导入docker仓库
docker load < flanneld-v0.14.0-amd64.docker运行flannel插件在master机器运行flannel插件
kubectl apply -f kube-flannel.yml查看k8s集群状态#查看所有节点是否ready kubectl get nodes #查看flannel节点是否运行正常 kubectl get pod -n kube-system | grep flannel #查看kube-system启动的所有pod kubectl get pod -n kube-system参考内容部署k8s的时候kube-flannel.yml下载不下来解决
CentOS-7.9通过kubeadm搭建k8s集群
calico方式 下载calico.yamlcurl https://docs.projectcalico.org/manifests/calico.yaml -O如果使用CIDR为192.168.0.0/16,或者使用 kubeadm,不需要修改CALICO_IPV4POOL_CIDR。其他平台需要修改CALICO_IPV4POOL_CIDR
创建使用calicokubectl create -f calico.yaml kubectl apply -f calico.yaml参考内容官网安装方式
加入node节点执行kubeadm init之后生成的,复制粘贴即可。
kubeadm join 192.168.211.142:6443 --token nzz2t6.os75i5sh03o1l2zr --discovery-token-ca-cert-hash sha256:6747e5cd75d5ac8ce63694e6c8dbe32dedb0a29a2215b3b172e62efbc633e51e测试kubernetes集群在 Kubernetes 集群中创建一个 pod,验证是否正常运行
#创建pod kubectl create deployment nginx --image=nginx #暴露端口 kubectl expose deployment nginx --port=80 --type=NodePort #执行查看 kubectl get pod,svc执行结果
[root@k8smaster01 ~]# kubectl get pod,svc NAME READY STATUS RESTARTS AGE pod/nginx-6799fc88d8-hnwx9 1/1 Running 0 37m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1443/TCP 114m service/nginx NodePort 10.109.186.229 80:31444/TCP 6s 访问地址:http://NodeIP:Port
如我的ip为:http://192.168.211.144:31444/



