kubeadm安装Kubernetes 1.14最佳实践

Kubernetes作为容器编排工具,简化容器管理,提升工作效率而颇受青睐。国内阿里云部署Kubernetes的最简方法。

一、Kubernetes简介

Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,提高了大规模容器集群管理的便捷性。

K8S集群中有管理节点与工作节点两种类型。管理节点主要负责K8S集群管理,集群中各节点间的信息交互、任务调度,还负责容器、Pod、NameSpaces、PV等生命周期的管理。工作节点主要为容器和Pod提供计算资源,Pod及容器全部运行在工作节点上,工作节点通过kubelet服务与管理节点通信以管理容器的生命周期,并与集群其他节点进行通信。

二、环境准备

Kubernetes支持在物理服务器或虚拟机中运行,本次使用虚拟机准备测试环境,硬件配置信息如表所示:


IP地址

节点角色

CPU

Memory

Hostname

磁盘

10.10.10.10

master

>=2c

>=2G

master

sda、sdb

10.10.10.11

worker

>=2c

>=2G

node1

sda、sdb

10.10.10.12

worker

>=2c

>=2G

node2

sda、sdb

注:在所有节点上进行如下操作

1.设置主机名hostname,管理节点设置主机名为 master 。

hostnamectl set-hostname master

需要设置其他主机名称时,可将 master 替换为正确的主机名node1、node2即可。

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

cat <<EOF >>/etc/hosts 10.10.10.10 master 10.10.10.11 node1 10.10.10.12 node2 EOF

3.关闭防火墙、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

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

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

配置国内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

配置 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-18.06.1.ce-3.el7 systemctl enable docker && systemctl start docker docker --version Docker version 18.06.1-ce, build e68fc7a

docker服务为容器运行提供计算资源,是所有容器运行的基本平台。

2.安装kubeadm、kubelet、kubectl

yum -y install docker-ce-18-09 kubelet-1.14.2 kubeadm-1.14.2 kubectl--1.14.2 --disableexcludes=kubernetes systemctl enable kubelet

Kubelet负责与其他节点集群通信,并进行本节点Pod和容器生命周期的管理。Kubeadm是Kubernetes的自动化部署工具,降低了部署难度,提高效率。Kubectl是Kubernetes集群管理工具。

四、部署master 节点

注:在master节点上进行如下操作

1.在master进行Kubernetes集群初始化。

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

添加开机自启(包括node)

systemctl enable kubelet.service

定义POD的网段为: 10.244.0.0/16, api server地址就是master本机IP地址。

这一步很关键,由于kubeadm 默认从官网k8s.grc.io下载所需镜像,国内无法访问,因此需要通过–image-repository指定阿里云镜像仓库地址,很多新手初次部署都卡在此环节无法进行后续配置

记录生成的最后部分内容,此内容需要在其它节点加入Kubernetes集群时执行。

kubeadm join 10.10.10.10:6443 --token kekvgu.nw1n76h84f4camj6 \ --discovery-token-ca-cert-hash sha256:4ee74205227c78ca62f2d641635afa4d50e6634acfaa8291f28582c7e3b0e30e

2.配置kubectl工具

mkdir -p /root/.kube cp /etc/kubernetes/admin.conf /root/.kube/config kubectl get nodes kubectl get cs

3.部署flannel网络

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

4.重置kubectl

kubeadm reset

五、部署node节点

注:在所有node节点上进行如下操作

执行如下命令,使所有node节点加入Kubernetes集群

kubeadm join 10.10.10.10:6443 --token kekvgu.nw1n76h84f4camj6 \ --discovery-token-ca-cert-hash sha256:4ee74205227c78ca62f2d641635afa4d50e6634acfaa8291f28582c7e3b0e30e

此命令为集群初始化时(kubeadm init)返回结果中的内容。

六、集群状态检测

注:在master节点上进行如下操作

1.在master节点输入命令检查集群状态,返回如下结果则集群状态正常。

kubectl get nodes NAME     STATUS   ROLES    AGE     VERSION master   Ready    master   26m     v1.14.2 node1    Ready    <none>   3m10s   v1.14.2 node2    Ready    <none>   3m      v1.14.2

重点查看STATUS内容为Ready时,则说明集群状态正常。

2.创建Pod以验证集群是否正常。

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

七、部署Dashboard

注:在master节点上进行如下操作

1.创建Dashboard的yaml文件

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

sed -i ‘s/k8s.gcr.io/loveone/g‘ kubernetes-dashboard.yaml sed -i ‘/targetPort:/a\ \ \ \ \ \ nodePort: 30001\n\ \ type: NodePort‘ kubernetes-dashboard.yaml

2.部署Dashboard

kubectl create -f kubernetes-dashboard.yaml

3.创建完成后,检查相关服务运行状态

kubectl get deployment kubernetes-dashboard -n kube-system kubectl get pods -n kube-system -o wide kubectl get services -n kube-system netstat -ntlp|grep 30001

4.在Firefox浏览器输入Dashboard访问地址:https://10.10.10.10:30001

5.查看访问Dashboard的认证令牌

kubectl create serviceaccount dashboard-admin -n kube-system kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk ‘/dashboard-admin/{print $1}‘)

6.使用输出的token登录Dashboard。

认证通过后,登录Dashboard首页如图

原文地址:https://www.cnblogs.com/carl007/p/11345173.html

时间: 2024-10-07 07:42:51

kubeadm安装Kubernetes 1.14最佳实践的相关文章

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

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.15.1

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

使用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

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 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

使用kubeadm安装Kubernetes 1.16 集群

kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践. 操作系统Ubuntu 16.04+.Debian 9.CentOS 7.RHEL 7.Fedora 25/26 (best-effort).其他内存2GB + ,2核CPU +集群节点之间可以通信每个节点唯一主机名,MAC

使用kubeadm安装Kubernetes

(1)系统基础设置 通过DNS完成各节点的主机名解析,少量时可以使用hosts文件进行解析: 借助于NTP服务设置各节点时间精确同步 关闭各节点iptables和firewalld,并确保禁止开机自启动 各节点禁用SELinux 各节点禁用所有Swap设备 若要使用ipvs模型的proxy,各节点还需要载入ipvs相关的各模块 1.1 设置主机名 每台主机名必须都不一样,并保证所有节点之间可以通过hostname相互访问.  # 查看主机名 hostname # 修改主机名 hostnamect