kubeadm 安装kubernetes 1.18

kubeadm 安装kubernetes 1.18

前言

k8s作为容器编排工具,简化容器管理,提升工作效率而颇受青睐。本文将介绍如何通过kubeadm安装k8s集群。

一.环境准备

Kubenetes支持在物理服务器或虚拟机中运行。这里准备三台安装了centos系统的物理机。

 

IP地址节点角色CPUMemoryHostname
172.17.0.12master>=2c>=2Gk8s-master
172.10.0.15worker>=2c>=2Gk8s-node-1
172.10.0.18worker>=2c>=2Gk8s-node-2

 

注:以下操作需要在每台主机上操作

 

1.修改主机名,在master节点执行

 

 hostnamectl set-hostname k8s-master

 

剩下的工作节点,执行 hostnamectl set-hostname k8s-***即可

 

2.编辑 /etc/hosts 文件,添加域名解析

 

 cat <<EOF >>/etc/hosts
 172.17.0.12 k8s-master
 172.10.0.15 k8s-node-1
 172.10.0.18 k8s-node-2
 EOF

 

注意:这里的IP(172.17.0.*)根据自个的真实内网ip而定

3.关闭防火墙,swap,和selinux。

 

 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

4.配置内核参数,将桥接的IPv4流量传递到iptables的链

 

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

5.配置国内yum源(如果你的服务器是国外这步骤可以省略)

 

 yum install -y wget
 ​
 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

6.配置国内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/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
 ​
 EOF

7.配置docker源(如果你的服务器是国外这步骤可以省略)

 

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

 

二.安装

注:以下操作需要在每台主机上操作

1.安装docker

 

 yum install -y docker-ce
 ​
 systemctl enable docker && systemctl start docker

验证docker是否安装成功

 

 docker -version

 

2.安装kubeadm,kubelet,kubectl

 

 yum install -y kubelet kubeadm kubectl
 ​
 systemctl enable kubelet

 

  • Kubelet负责与其他节点集群通信,并进行本节点Pod和容器生命周期的管理。

  • Kubeadm是Kubernetes的自动化部署工具,降低了部署难度,提高效率。

  • Kubectl是Kubernetes集群管理工具。

三.master节点部署

注:以下操作只需要在master节点上进行即可

1.kubernetes集群初始化。

 

 kubeadm init --kubernetes-version=1.18.0 \--apiserver-advertise-address=172.17.0.12 \--image-repository registry.aliyuncs.com/google_containers \--service-cidr=10.1.0.0/16 \--pod-network-cidr=10.244.0.0/16

 

命令解析:

  • --pod-network-cidr: 定义pod网段为:10.244.0.0/16

  • --apiserver-advertise-address:master主机内网IP地址

  • --image-repository:指定阿里云镜像仓库地址。由于kubeadm 默认从官网k8s.grc.io下载所需镜像,国内无法访问,因此需要通过–image-repository指定阿里云镜像仓库地址。(国外主机可以不用设定)

集群初始化会出现如下结果

image.png

 

右上图可以看到:

 kubeadm join 172.17.0.12:6443 --token xj9dg2.3kwxfqwvnovx8l4o \
     --discovery-token-ca-cert-hash sha256:8e66d889f00b8b24e72e45927f773cf90fc7a75c5608f15502d86a7940d0b629 

记录该信息,此信息以后添加的各个工作节点都需要

2.配置kubectl工具

 

 mkdir -p /root/.kube
 cp /etc/kubernetes/admin.conf /root/.kube/config

3.部署Flannel网络

 

 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

四.工作node节点部署

注:在所有node节点执行上文master节点部署成功后生成的信息

 

 kubeadm join 172.17.0.12:6443 --token xj9dg2.3kwxfqwvnovx8l4o \
     --discovery-token-ca-cert-hash sha256:8e66d889f00b8b24e72e45927f773cf90fc7a75c5608f15502d86a7940d0b629 

 

不出意外即可看到如下信息

image.png

 

五.集群验证

注:以下操作只需要在master节点上进行即可

1.检查集群状态

 

 kubectl get nodes

结果如下:

image.png

观察STATUS,如果为Ready时,则说明集群状态正常。

 

2.创建Pod验证

 

 kubectl create deployment nginx --image=nginx
 ​
 kubectl expose deployment nginx --port=80 --type=NodePort
 ​
 kubectl get pod,svc

 

执行结果如下,则集群健康

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值