k8s1.18三节点集群部署+docker容器安装

k8s1.18三节点+docker容器安装

环境准备

建三台虚拟机,三台虚拟机的信息如下:
注:建议IP地址是自己配的静态地址,因为动态的话改变网络地址就会改变,要重新配置(静态ip配置可参考https://blog.csdn.net/weixin_44764814/article/details/109219132

hostnameIP地址节点角色CPUmemory
master172.16.10.102master>=2c>=2G
node1172.16.10.103node>=2c>=2G
node2172.16.10.105node>=2c>=2G

1.设置主机名

(1)第一台虚拟机master

hostnamectl set-hostname master

输入bash生效

bash

在这里插入图片描述

(2)第二台虚拟机

hostnamectl set-hostname node1
bash

(3)第二台虚拟机

hostnamectl set-hostname node2
bash

2.下面是三台虚拟机需要同时部署环境,建议使用MobaXterm工具同时部署可以节省许多时间(MobaXterm使用可参考https://blog.csdn.net/weixin_44764814/article/details/109219881

(1)编辑 /etc/hosts 文件,添加域名解析

vi /etc/hosts

添加域名解析

cat <<EOF >>/etc/hosts
172.16.10.102 master
172.16.10.103 node1
172.16.10.105 node2
EOF

在其中一台虚拟机用

ping 名称

查看是否配置成功
显示如下即配置成功
在这里插入图片描述

(2)关闭防火墙、selinux 和 swap:

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g"
/etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

(3)配置内核参数

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

(4)配置国内 yum 源:

yum update -y
yum install -y wget dnf
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo
http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all && yum makecache

(5)配置国内 Kubernetes 源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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/yumkey.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpmpackage-key.gpg
EOF

在这里插入图片描述

(6)配置 Docker 源:

wget https://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

(7)安装 Docker:

# 安装最新的版
yum install -y docker-ce
systemctl enable docker && systemctl start docker
# 查看是否安装成功
docker –version

(8)更换 docker 镜像仓库源
首先登陆阿里云官网,没有注册先注册,然后选择控制台->找到容器镜像服务

在这里插入图片描述

然后选择镜像加速器,复制镜像加速地址

在这里插入图片描述

创建下面的文件,并将镜像加速地址写入

mkdir -p /etc/docker

注:https://7oj3jg2x.mirror.aliyuncs.com"],
"iptables是自己的镜像加速地址

tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":
["https://7oj3jg2x.mirror.aliyuncs.com"],
"iptables": false,
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl restart docker

(9)安装 kubeadm、kubelet、kubectl:

#安装 k8s1.18版本
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl1.18.0
systemctl enable kubelet

至此,三台虚拟机共同的环境部署完成

3.部署master节点(第一台虚拟机)
(1)创建 Kubernetes 集群并进行初始化:

kubeadm init \
--apiserver-advertise-address=172.16.10.102 \
--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

–apiserver-advertise-address 集群通告地址(即自己虚拟机ip)
–image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问, 这里指定阿里云镜像仓库地址。
–kubernetes-version K8s版本,与上面安装的一致
–service-cidr 集群内部虚拟网络,Pod统一访问入口
–pod-network-cidr Pod 网络,与下面部署的CNI网络组件yaml中保持一致

在这里插入图片描述

结果如下:

在这里插入图片描述

注:记住最后一个,在 Node 节点安装的时候需要使用

(2)拷贝kubectl使用的连接k8s认证文件到默认路径:

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 命令的自动补全功能:

echo "source <(kubectl completion bash)" >> ~/.bashrc
kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master NotReady master 2m v1.18.0

在这里插入图片描述
查看已经运行的 Pod:

kubectl get pod -n kube-system -owide

(会发现除了coredns 未 ready,这是正常的,因为还没有网络插件,接
下来安装相关的网络插件后就变为正常 running 了。)
在这里插入图片描述
(4)部署 calico 网络:

wget https://docs.projectcalico.org/v3.10/gettingstarted/kubernetes/installation/hosted/kubernetesdatastore/calico-networking/1.7/calico.yaml
kubectl apply -f calico.yaml

再查看,所有 pod 都运行了:
在这里插入图片描述
4. 部署 Node 节点
将 Node 从 Cluster 中删除再加入
从 Master 中删除:

kubectl drain node1 --delete-local-data --force --ignoredaemonsets
kubectl delete node node1

到待删除 Node 上执行:

kubeadm reset

在各个 Node 节点上使用部署 Master 节点中生成的 join 命令,加入到 Cluster中

kubeadm join 172.16.10.102:6443 --token sjh9yp.ilfjgbllllx7vpl6 \
    --discovery-token-ca-cert-hash sha256:148a57682936cf0c3cf48f4b86f2f3c5c9ba51c6d8c9c00102321993389458cc

结果如下:
在这里插入图片描述
5.集群状态监测
待 Node 都加入 Cluster 之后,在 Master 上执行以下命令监测 Cluster 状态是否正常

kubectl get nodes

在这里插入图片描述

重点查看STATUS内容为Ready时,则说明集群状态正常。
(2)查看集群当前所运行的所有 Pod:

kubectl get pods --all-namespaces

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值