Centos使用kubeadm安装kubernetes 1.17.2 集群

安装环境:centos7.7+kubernetes 1.17.2+calico 3.12.0

1、虚拟机新建三个节点,并修改主机名和设置固定ip

#设置主机名(三台机器操作一样,只是对应IP不一样)
hostnamectl set-hostname k8s-master
echo "192.168.2.130   $(hostname)" >> /etc/hosts

#设置固定IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#更改后的内容:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  #dhcp改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
DEVICE=eno1
NAME=eno1
UUID=3088fb60-91da-4256-9f37-527f51a64e9a
NM_CONTROLLED=no      #表示该接口将通过该配置文件进行设置,而不是通过网络管理器进行管理
ONBOOT=yes  #开机启动
IPADDR=192.168.2.130   #本机地址
NETMASK=255.255.255.0  #子网掩码
GATEWAY=192.168.2.2    #默认网关#修改networkvi /etc/sysconfig/network

NETWORKING=yes
  GATEWAY=192.168.2.2
  DNS1=192.168.2.2

#重启服务

service network restart

2、安装docker及kubelet

# 在 master 节点和 worker 节点都要执行
# 最后一个参数 1.17.2 用于指定 kubenetes 版本,支持所有 1.17.x 版本的安装

curl -sSL https://kuboard.cn/install-script/v1.17.x/install_kubelet.sh | sh -s 1.17.2
#为使镜像能正常下载,设置docker加速器(该步骤很重要)
vi /etc/docker/daemon.json
{"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com","https://quay-mirror.qiniu.com/","https://registry.docker-cn.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]}

3、初始化Master

# 只在 master 节点执行
# 替换 x.x.x.x 为 master 节点的内网IP
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=192.168.2.130
# 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=apiserver.demo
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=192.168.0.0/16
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
if [ ${#POD_SUBNET} -eq 0 ] || [ ${#APISERVER_NAME} -eq 0 ]; then
  echo -e "\033[31;1m请确保您已经设置了环境变量 POD_SUBNET 和 APISERVER_NAME \033[0m"
  echo 当前POD_SUBNET=$POD_SUBNET
  echo 当前APISERVER_NAME=$APISERVER_NAME
  exit 1
fi

# 查看完整配置选项 https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2
rm -f ./kubeadm-config.yaml
cat <<EOF > ./kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v${1}
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
controlPlaneEndpoint: "${APISERVER_NAME}:6443"
networking:
  serviceSubnet: "10.96.0.0/16"
  podSubnet: "${POD_SUBNET}"
  dnsDomain: "cluster.local"
EOF

# kubeadm init
# 根据您服务器网速的情况,您需要等候 3 - 10 分钟
kubeadm init --config=kubeadm-config.yaml --upload-certs

# 配置 kubectl
rm -rf /root/.kube/
mkdir /root/.kube/
cp -i /etc/kubernetes/admin.conf /root/.kube/config

4、安装Calico

去官网找下载链接https://docs.projectcalico.org/getting-started/kubernetes/quickstart

wget https://docs.projectcalico.org/manifests/calico.yaml
sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yaml
kubectl apply -f calico.yaml

此步骤中,如果出现calico-node的PullImageBackOff错误,其原因大多是镜像下载失败。

解决方法:

可以先将镜像下载下来,使用命令:cat calico.yaml |grep image 列出需要下载的镜像

image: calico/cni:v3.12.0
image: calico/cni:v3.12.0
image: calico/pod2daemon-flexvol:v3.12.0
image: calico/node:v3.12.0
image: calico/kube-controllers:v3.12.0
# 逐条执行下面命令
docker pull quay-mirror.qiniu.com/calico/cni:v3.12.0
docker pull quay-mirror.qiniu.com/calico/pod2daemon-flexvol:v3.12.0
docker pull quay-mirror.qiniu.com/calico/node:v3.12.0
docker pull quay-mirror.qiniu.com/calico/kube-controllers:v3.12.0

下载完成后,执行 kubectl apply -f calico.yaml

# 只在 master 节点执行

# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide

# 查看 master 节点初始化结果
kubectl get nodes -o wide

5、初始化worker节点

master节点上执行命令:kubeadm token create --print-join-command 

可获取kubeadm join 命令及参数,如下所示

# kubeadm token create 命令的输出
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt     --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303

所有worker节点执行下面命令

# 只在 worker 节点执行
# 替换 x.x.x.x 为 master 节点的内网 IP
export MASTER_IP=x.x.x.x(192.168.2.130)
# 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=apiserver.demo
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts

# 替换为 master 节点上 kubeadm token create 命令的输出
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt     --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303

6、检查初始化结果

在master节点上执行命令: kubectl get nodes -o wide 

[[email protected] ~]# kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
k8s-master   Ready    master   6h45m   v1.17.2
k8s-node1    Ready    <none>   26m     v1.17.2
k8s-node2    Ready    <none>   62s     v1.17.2

至此,集群安装成功。希望对您有帮助

原文地址:https://www.cnblogs.com/Chaser-Eagle/p/12267107.html

时间: 2024-10-10 20:04:06

Centos使用kubeadm安装kubernetes 1.17.2 集群的相关文章

Centos 使用kubeadm安装Kubernetes 1.15.3

本来没打算搞这个文章的,第一里面有瑕疵(没搞定的地方),第二在我的Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装 也有安装,第三 和社区的问文章比较雷同 https://www.kubernetes.org.cn/5551.html kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kuberne

使用kubeadm部署K8S v1.17.0集群

kubeadm部署K8S集群 安装前的准备 集群机器 172.22.34.34 K8S00 172.22.34.35 K8S01 172.22.34.36 K8S02 注意: 本文档中的 etcd .master 节点.worker 节点均使用这三台机器: 需要使用 root 账号执行这些命令: 未做特殊说明,就表示集群的所有机器都要进行操作 查看CentOS版本 [[email protected] ~]# cat /etc/redhat-release CentOS Linux releas

Kubadem方式安装Kubernetes(1.10.0)集群

背景 kubernetes已经是现有的docker容器管理工具中必学的一个架构了,相对与swarm来说,它的架构更重,组件和配置也更复杂,当然了,提供的功能也更加强大.在这里,k8s的基本概念和架构就不描述了,网上有很多的资料可供参考. 在技术的驱使下,我们公司也不可避免地开始了k8s的研究,所以也要开始接触到这一强大的docker容器管理架构.学习k8s的第一步,首先要搭建一个k8s的集群环境.搭建k8s最简单的应该是直接使用官方提供的二进制包.但在这里,我参考了k8s官方的安装指南,选择使用

CentOS 6.7安装Hadoop 2.6.3集群环境

在CentOS 6.7 x64上搭建Hadoop 2.6.3完全分布式环境,并在DigitalOcean上测试成功. 本文假设: 主节点(NameNode)域名(主机名):m.fredlab.org 子节点(DataNode)域名(主机名):s1.fredlab.org s2.fredlab.org s3.fredlab.org 一.配置SSH互信 1.master机上生成公私钥:id_rsa和id_rsa.pub ssh-keygen 2.上传到每个节点机器的.ssh/目录下 .ssh/---

利用ansible来做kubernetes 1.10.3集群高可用的一键部署

请读者务必保持环境一致 安装过程中需要下载所需系统包,请务必使所有节点连上互联网. 本次安装的集群节点信息 实验环境:VMware的虚拟机 IP地址 主机名 CPU 内存 192.168.77.133 k8s-m1 6核 6G 192.168.77.134 k8s-m2 6核 6G 192.168.77.135 k8s-m3 6核 6G 192.168.77.136 k8s-n1 6核 6G 192.168.77.137 k8s-n2 6核 6G 192.168.77.138 k8s-n3 6核

使用kubeadm 安装 kubernetes 1.15.1

简介: Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿.kubernetes1.5版本以及之前,安装还是相对比较方便的,官方就有通过yum源在centos7安装kubernetes.但是在kubernetes1.6之后,安装就比较繁琐了,需要证书各种认证,对于刚接触kubernetes的人来说很不友好. Copy docker : kubernetes依赖的容器运行时 kubelet: kuber

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. PS: 篇幅有点长,但是比较详细.比较全面 一.Centos7 配置说明 1.1   Firewalld(防火墙) CentOS Linux 7 默认开起来防火墙服务(firewalld),而Kubernetes的Master与工作Node之间会有大量的网络通信,安全的做法是在防火墙上配置Kbernetes各组件(api-server.kubelet等等)需要相互通信的端口

centos7使用kubeadm安装kubernetes 1.11版本多主高可用

centos7使用kubeadm安装kubernetes 1.11版本多主高可用 [TOC] kubernetes介绍要学习一个新的东西,先了解它是什么,熟悉基本概念会有很大帮助.以下是我学习时看过的一篇核心概念介绍.http://dockone.io/article/932 搭建Kubernetes集群环境有以下3种方式: minikubeMinikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境.官方地址:ht

使用kubeadm安装kubernetes v1.14.1

使用kubeadm安装kubernetes v1.14.1 一.环境准备 操作系统:Centos 7.5 ? ? 一台或多台运?行行着下列列系统的机器?: ? Ubuntu 16.04+ ? Debian 9 ? CentOS 7 ? RHEL 7 ? Fedora 25/26 (尽?力力服务) ? HypriotOS v1.0.1+ ? Container Linux (针对1800.6.0 版本测试) ? 每台机器? 2 GB 或更更多的 RAM (如果少于这个数字将会影响您应?用的运?行行