kubeadm部署最新版k8s集群v1.18.0

kubeadm部署最新版k8s集群V1.18.0

安装部署时间:2020年3月26日
文档更新时间:2020年3月27日
文档更新原因:国内yum源有1.18.0版本kubeadm kubelet kubectl

官方文档:

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

kubeadm部署k8s高可用集群的官方文档:

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/

更新日志:

(新版本刚出,没有中文更新日志,可能部分解释有偏差)

https://kubernetes.io/blog/
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md

	我们很高兴宣布Kubernetes 1.18的交付,这是我们2020年的第一版!Kubernetes 1.18包含38个增强功能:15个增强功能已趋于稳定,beta增强了11个,alpha增强了12个。

Kubernetes 1.18是一个“完美”的版本。为了改善用户体验,已经在改进beta和稳定功能方面进行了大量工作。我们付	出了同等的努力来增加新的开发和令人兴奋的新功能,这些承诺有望进一步增强用户体验。对alpha,beta和稳定版进行几乎一样多的增强是一项伟大的成就。它显示了社区在提高Kubernetes的可靠性以及继续扩展其现有功能方面所做的巨大努力。

主要主题
Kubernetes拓扑管理器移至Beta-对齐!
	拓扑管理器功能是 1.18版中Kubernetes的beta功能,它使CPU和设备(例如SR-IOV VF)实现NUMA对齐,这将使您的工作负载在针对低延迟而优化的环境中运行。在引入拓扑管理器之前,CPU和设备管理器将做出彼此独立的资源分配决策。这可能会导致在多套接字系统上分配不良信息,从而导致延迟关键型应用程序的性能下降。

Serverside Apply推出Beta 2
	服务器端Apply在1.16中升级为Beta,但现在在1.18中引入了第二个Beta。这个新版本将跟踪和管理所有新Kubernetes对象的字段更改,从而使您知道什么更改了资源以及何时更改。

使用IngressClass扩展Ingress并用IngressClass替换不推荐使用的注释
	在Kubernetes 1.18中,Ingress有两个重要的补充:一个新pathType字段和一个新IngressClass资源。该pathType字段允许指定路径应如何匹配。除了默认ImplementationSpecific类型外,还有new Exact和Prefixpath类型。

	该IngressClass资源用于描述Kubernetes集群中的Ingress类型。入口可以通过ingressClassName在入口上使用新字段来指定与它们关联的类。此新资源和字段替换了不建议使用的kubernetes.io/ingress.class注释。

SIG-CLI引入kubectl调试
	SIG-CLI一直在争论是否需要调试实用程序。随着临时容器的发展,我们可以通过在kubectl exec。该kubectl debug命令的添加(它是Alpha,但欢迎您提供反馈),使开发人员可以轻松地在集群中调试其Pod。我们认为这种增加是无价的。此命令允许创建一个临时容器,该容器在要检查的Pod旁边运行,并且还附加到控制台以进行交互式故障排除。

为Kubernetes引入Windows CSI支持Alpha
	随着Kubernetes 1.18的发布,用于Windows的CSI代理的Alpha版本也已发布。CSI代理使非特权(预先批准)的容器能够在Windows上执行特权存储操作。现在,可以利用CSI代理在Windows中支持CSI驱动程序。

其他更新
	毕业到稳定
	污秽驱逐
	kubectl diff
	CSI块存储支持
	API Server空运行
	在CSI呼叫中传递Pod信息
	支持树外vSphere Cloud Provider
	为Windows工作负载支持GMSA
	跳过附加的非附加CSI卷
	PVC克隆
	将kubectl软件包代码移至暂存
	Windows的RunAsUserName
	适用于服务和端点的AppProtocol
	扩展大页面功能
	客户端签名重构,以标准化选项和上下文处理
	节点本地DNS缓存
主要变化
	EndpointSlice API
	将kubectl软件包代码移至暂存
	CertificateSigningRequest API
	扩展大页面功能
	客户端签名重构,以标准化选项和上下文处理

各个组件之间的兼容性关系

注:因网络原因,kubeadm,kubectl,kubelet的版本无法更新到V1.18.0,故将使用最新版V1.17.4,且可兼容。后续国内yum源支持,可根据下面官方文档升级。(已更新,请忽略)

升级kubeadm集群:
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/

kubernetes各个组件版本之间的兼容性关系:
https://kubernetes.io/zh/docs/setup/release/version-skew-policy/


kubelet
kubelet 版本号不能高于 kube-apiserver,最多可以比 kube-apiserver 低两个小版本。

例如:
kube-apiserver 版本号如果是 1.13
kubelet 只能是 1.13 、 1.12 和 1.11


kubectl
kubectl 可以比 kube-apiserver 高一个小版本,也可以低一个小版本。

例如:
如果 kube-apiserver 当前是 1.13 版本
kubectl 则支持 1.14 、1.13 和 1.12
查看指定版本k8s,所需镜像的版本:
[root@k8s-master ~]# kubeadm config images list --kubernetes-version=v1.18.0

k8s.gcr.io/kube-apiserver:v1.18.0
k8s.gcr.io/kube-controller-manager:v1.18.0
k8s.gcr.io/kube-scheduler:v1.18.0
k8s.gcr.io/kube-proxy:v1.18.0
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.3-0
k8s.gcr.io/coredns:1.6.7

安装开始

准备三台机器

vi /etc/hosts
192.168.100.10   kub-k8s-master
192.168.100.20   kub-k8s-node1
192.168.100.30   kub-k8s-node2

所有机器系统配置

1.关闭防火墙:
# systemctl stop firewalld
# systemctl disable firewalld
2.禁用SELinux:
# setenforce 0
3.编辑文件/etc/selinux/config,将SELINUX修改为disabled,如下:
# sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
SELINUX=disabled 

关闭系统Swap:1.5之后的新规定

Kubernetes 1.8开始要求关闭系统的Swap,如果不关闭,默认配置下kubelet将无法启动。方法一,通过kubelet的启动参数–fail-swap-on=false更改这个限制。方法二,关闭系统的Swap。

1.关闭swap分区
# swapoff -a
修改/etc/fstab文件,注释掉SWAP的自动挂载,使用free -m确认swap已经关闭。
2.注释掉swap分区:
# sed -i 's/.*swap.*/#&/' /etc/fstab
# free -m
              total        used        free      shared  buff/cache   available
Mem:           1980         123        1310           9         546        1693
Swap:             0           0           0

# 注:以上两步都做,第一步临时关闭,第二步永久关闭

安装docker–三台机器都操作

# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
# yum install -y yum-utils device-mapper-persistent-data lvm2 git
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# yum install docker-ce -y

启动并设置开机启动

阿里下载镜像

[root@k8s-master ~]# docker pull registry.cn-qingdao.aliyuncs.com/kubernetes-image/kube-controller-manager:v1.18.0
[root@k8s-master ~]# docker pull registry.cn-qingdao.aliyuncs.com/kubernetes-image/kube-proxy:v1.18.0
[root@k8s-master ~]# docker pull registry.cn-qingdao.aliyuncs.com/kubernetes-image/kube-apiserver:v1.18.0
[root@k8s-master ~]# docker pull registry.cn-qingdao.aliyuncs.com/kubernetes-image/kube-scheduler:v1.18.0
[root@k8s-master ~]# docker pull registry.cn-qingdao.aliyuncs.com/kubernetes-image/coredns:1.6.7
[root@k8s-master ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0
[root@k8s-master ~]# docker pull registry.cn-qingdao.aliyuncs.com/kubernetes-image/pause:3.2

给镜像打tag

[root@k8s-master ~]# docker tag registry.cn-qingdao.aliyuncs.com/kubernetes-image/kube-controller-manager:v1.18.0 k8s.gcr.io/kube-controller-manager:v1.18.0
[root@k8s-master ~]# docker tag registry.cn-qingdao.aliyuncs.com/kubernetes-image/kube-proxy:v1.18.0 k8s.gcr.io/kube-proxy:v1.18.0
[root@k8s-master ~]# docker tag registry.cn-qingdao.aliyuncs.com/kubernetes-image/kube-apiserver:v1.18.0 k8s.gcr.io/kube-apiserver:v1.18.0
[root@k8s-master ~]# docker tag registry.cn-qingdao.aliyuncs.com/kubernetes-image/kube-scheduler:v1.18.0 k8s.gcr.io/kube-scheduler:v1.18.0
[root@k8s-master ~]# docker tag 67d k8s.gcr.io/coredns:1.6.7
[root@k8s-master ~]# docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
[root@k8s-master ~]# docker tag 80d k8s.gcr.io/pause:3.2

使用kubeadm部署Kubernetes:

所有节点安装kubeadm和kubelet:

配置yum源
# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值