使用kubeadm安装kubernetes 1.15

1、主机准备篇

使用vmware Workstation 10创建一台虚拟机,配置为2C/2G/50G,操作系统为CentOS Linux release 7.6.1810 (Core)。

IP地址为:192.168.198.136(DHCP自动分配的)

以root身份登录该主机,开始相关操作

禁用SELinux

# setenforce 0

# vim /etc/selinux/config

SELINUX=enforcing改为SELINUX=disabled

禁用防火墙

# systemctl disable firewalld

# systemctl stop firewalld

在yum仓库中添加kubernetes

# vim /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

安装docker、kubelet、kubeadm、kubectl、kubernetes-cni

# yum install docker kubelet kubeadm kubectl kubernetes-cni -y

# systemctl enable docker && systemctl start docker

# systemctl enable kubelet && systemctl start kubelet

# vim /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

# sysctl -p /etc/sysctl.d/k8s.conf

禁用交换分区

# swapoff -a

# sed -i ‘/ swap / s/^/#/‘ /etc/fstab

刚才的主机就作为kubernetes集群的主节点,现在克隆它,制造2台工作节点。

克隆完毕后,现在咱们的主机有3台:

192.168.198.136   2C/2G/50G   主节点

设置主机名:hostnamectl --static set-hostname master.k8s

192.168.198.131   2C/2G/50G   工作节点

设置主机名:hostnamectl --static set-hostname node1.k8s

192.168.198.132   2C/2G/50G   工作节点

设置主机名:hostnamectl --static set-hostname node2.k8s

为三台主机配置名称解析

# vim /etc/hosts

192.168.198.136 master.k8s

192.168.198.131 node1.k8s

192.168.198.133 node2.k8s

三台主机都得填写。

2、主节点初始化篇

由于初始化的过程中,要去k8s.gcr.io网站下载相关的镜像,而我们国内无法访问外网,所以只能另想其他办法。

找出需要下载的镜像列表

在主节点执行以下命令:

# kubeadm config images list

k8s.gcr.io/kube-apiserver:v1.15.0

k8s.gcr.io/kube-controller-manager:v1.15.0

k8s.gcr.io/kube-scheduler:v1.15.0

k8s.gcr.io/kube-proxy:v1.15.0

k8s.gcr.io/pause:3.1

k8s.gcr.io/etcd:3.3.10

k8s.gcr.io/coredns:1.3.1

这是我的结果,你在实验时,每个镜像的版本可能不一定是这样,但不影响你的实验。

下载每个镜像

既然国外无法下载,那就从国内下载。因为阿里云做了镜像,所以我们直接从阿里云下载。

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.15.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.15.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.15.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.15.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.3.10

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.3.1

修改镜像的标签

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.15.0 k8s.gcr.io/kube-apiserver:v1.15.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.15.0 k8s.gcr.io/kube-controller-manager:v1.15.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.15.0 k8s.gcr.io/kube-scheduler:v1.15.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.15.0 k8s.gcr.io/kube-proxy:v1.15.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1

开始初始化

# kubeadm init --pod-network-cidr=10.244.0.0/16

初始化完成后,最后会出现一行添加工作节点的命令:

kubeadm join 192.168.198.136:6443 --token 5r4ez7.srmu7uaxghoiprpr \

--discovery-token-ca-cert-hash sha256:0f31247ea401aa84d1abda61b45a46d53777f1743391d31c2152b95b34e29a43

在主节点上运行kubectl

要想运行kubectl,需要设置环境变量:

# export KUBECONFIG=/etc/kubernetes/admin.conf

# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

# kubectl get po -n kube-system

此时可以看到coredns这个pod还未运行,因为没有安装网络插件。

# kubectl get nodes

此时可以看到主节点的状态是NotReady,因为没有安装网络插件。

在将工作节点加入集群前,有一点需要提前做好准备,那就是:在工作节点上运行pod时,必须要有pause镜像的支持,否则任何pod都无法运行。

目前已知在工作节点上要运行的pod有:

kube-proxy

kube-flannel

pause

由于kube-flannel刚好可以在国内下载,所以我们要处理的有kube-proxy和pause。

处理方法同前面的步骤,直接从阿里云下载,然后打标签即可。

注意在2个工作节点都要如此操作。具体步骤不写出来,同上。

处理完之后,就可以开始下面的步骤了。

(我在这个地方栽了半天)

将另外2台工作节点加入到集群中

在node1.k8s上执行:

# kubeadm join 192.168.198.136:6443 \

--token 5r4ez7.srmu7uaxghoiprpr \

--discovery-token-ca-cert-hash \

sha256:0f31247ea401aa84d1abda61b45a46d53777f1743391d31c2152b95b34e29a43

在node2.k8s上执行:

# kubeadm join 192.168.198.136:6443 \

--token 5r4ez7.srmu7uaxghoiprpr \

--discovery-token-ca-cert-hash \

sha256:0f31247ea401aa84d1abda61b45a46d53777f1743391d31c2152b95b34e29a43

然后到主节点上查看节点是否进入集群:

# kubectl get nodes

此时发现2台工作节点已经进入集群,只是状态为NotReady。

查看节点NotReady的原因

# kubectl describe node node1.k8s

得知是CNI网络插件的原因。

安装网络插件,我们选择flannel:

# wget \

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

# kubectl apply -f  kube-flannel.yml

稍等片刻,在主节点上再次查看各节点的状态,以及各pods的状态:

# kubectl get nodes

# kubectl get pods -n kube-system

到这里,我们使用kubeadm创建了一个kubernetes集群。该集群拥有3个节点,1个主节点,2个工作节点。

中间遇到的坎有:

1、因kube-proxy镜像无法从国内下载,导致2个工作节点上无法运行kube-proxy的pod,使得整体的集群无法成功。

2、同理,pause镜像也是同样的问题。

3、在1.15版本中,好像只能使用flannel网络插件。因为我在使用另一个插件weave-net时,总是报错:

open /run/flannel/subnet.env: no such file or directory,说明在新版的kubernetes中,只能使用flannel。

原文地址:https://www.cnblogs.com/t-road/p/11214025.html

时间: 2024-10-10 00:07:39

使用kubeadm安装kubernetes 1.15的相关文章

使用kubeadm 安装 kubernetes 1.15.1

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

kubeadm安装Kubernetes 1.15 实践

原地址参考github 一.环境准备(在全部设备上进行) 3 台 centos7.5 服务器,网络使用 Calico. IP地址 节点角色 CPU 内存 Hostname 10.0.1.45 master 2c 4G k8s-master 10.0.1.20 node 2c 4G node1 10.0.1.18 node 2c 4G node2 设置主机名 hostname. hostnamectl set-hostname k8s-master 对应上面表格的Hostname,node1与no

Centos 使用kubeadm安装Kubernetes 1.15.3

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

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 1.12

使用kubeadm安装Kubernetes 1.12 https://blog.frognew.com/2018/10/kubeadm-install-kubernetes-1.12.html 测试环境,aws us daas ,test0001,test00002 two Centos7.5 原文地址:https://www.cnblogs.com/oskb/p/10179019.html

使用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 (如果少于这个数字将会影响您应?用的运?行行

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

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

kubeadm安装kubernetes v1.11.3 HA多主高可用并启用ipvs

环境介绍: 系统版本:CentOS 7.5 内核:4.18.7-1.el7.elrepo.x86_64 Kubernetes: v1.11.3 Docker-ce: 18.06 Keepalived保证apiserever服务器的IP高可用 Haproxy实现apiserver的负载均衡 master x3 && etcd x3 保证k8s集群可用性 192.168.1.1 master 192.168.1.2 master2 192.168.1.3 master3 192.168.1.4

kubeadm安装kubernetes 1.13.2多master高可用集群

1. 简介 Kubernetes v1.13版本发布后,kubeadm才正式进入GA,可以生产使用,用kubeadm部署kubernetes集群也是以后的发展趋势.目前Kubernetes的对应镜像仓库,在国内阿里云也有了镜像站点,使用kubeadm部署Kubernetes集群变得简单并且容易了很多,本文使用kubeadm带领大家快速部署Kubernetes v1.13.2版本. 注意:请不要把目光仅仅放在部署上,如果你是新手,推荐先熟悉用二进制文件部署后,再来学习用kubeadm部署.二进制文