很棒的ecs云服务器Kubernetes系列之集群部署

无锡腾讯云服务器电话 小伙伴儿们,如果觉得文章干货满满,欢迎加入公众号【编程识堂】,更多干货等你们来哦! 硬件安装要求 注:由于我资源有限,下面只是模拟集群,生产环···

无锡腾讯云服务器电话

小伙伴儿们,如果觉得文章干货满满,欢迎加入公众号【编程识堂】,更多干货等你们来哦!

硬件安装要求

注:由于我资源有限,下面只是模拟集群,生产环境,各位小伙伴请合理安排好资源

临时演示集群节点

master192.168.150.128node1192.168.150.129node2192.168.150.130node3192.168.150.131

Centos安装

centos下载地址

推荐大家使用centos7.6以上版本。

下载地址http://mirrors.aliyun.com/centos/7/isos/x86_64/查看centos系统版本命令:cat/etc/centos-release修改虚拟机为固定ip 修改 IPADDR=192.168.150.131vi/etc/sysconfig/network-scripts/ifcfg-ens33DEFROUTE=yesONBOOT=yesIPADDR=192.168.150.128NETMASK=255.255.255.0GATEWAY=192.168.150.2DNS1=192.168.150.2重启系统网络systemctlrestart network

配置阿里云yum源

1.下载安装wgetyuminstall -y wget2.备份默认的yummv/etc/yum.repos.d /etc/yum.repos.d.backup3.设置新的yum目录mkdir-p /etc/yum.repos.d4.下载阿里yum配置到该目录中,选择对应版本wget-O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo5.更新epel源为阿里云epel源mv/etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backupmv/etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epeltesting.repo.backupwget-O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo6.重建缓存yumclean allyummakecache7.看一下yum仓库有多少包yumrepolistyumupdate

升级系统内核

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm yum--enablerepo=elrepo-kernel install -y kernel-ltgrep initrd16 /boot/grub2/grub.cfg grub2-set-default0reboot

查看centos系统内核命令

uname-runame-a

查看CPU命令

lscpu

查看内存命令

freefree-h

查看硬盘信息

fdisk-l

centos7系统配置

关闭防火墙

注:生产环境勿关

systemctlstop firewalldsystemctldisable firewalld

关闭selinux

sed-is/SELINUX=enforcing/SELINUX=disabled/g/etc/sysconfig/selinux setenforce0

网桥过滤

vi /etc/sysctl.conf net.bridge.bridge-nf-call-ip6tables =1net.bridge.bridge-nf-call-iptables =1net.bridge.bridge-nf-call-arptables =1net.ipv4.ip_forward=1net.ipv4.ip_forward_use_pmtu =0生效命令 sysctl--system查看效果 sysctl -a|grep"ip_forward"

开启IPVS

阿里云登录服务器配置

安装IPVSyum -y install ipset ipvsdm编译ipvs.modules文件vi /etc/sysconfig/modules/ipvs.modules文件内容如下!/bin/bashmodprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack_ipv4赋予权限并执行chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules &&lsmod | grep -e ip_vs -e nf_conntrack_ipv4重启电脑,检查是否生效reboot lsmod | grep ip_vs_rr

报错

原因是:安装K8S需要配置ipvs功能,但是在进行配置时会报错modprobe: FATAL: Module nf_conntrack_ipv4 not found.

这是因为使用了高内核,较如博主就是使用了5.2的内核,一般教程都是3.2的内核。在高版本内核已经把nf_conntrack_ipv4替换为nf_conntrack了。所以正确配置应该如下

vi /etc/sysconfig/modules/ipvs.modules文件内容如下!/bin/bashmodprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack赋予权限并执行chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules &&lsmod | grep -e ip_vs -e nf_conntrack

同步时间

避免集群中时间不同步导致问题

安装软件yum -yinstallntpdate向阿里云服务器同步时间ntpdate time1.aliyun.com删除本地时间并设置时区为上海rm -rf /etc/localtimeln-s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime查看时间date-R ||date

命令补全

安装bash-completionyum-y install bash-completion bash-completion-extras使用bash-completionsource/etc/profile.d/bash_completion.sh

关闭swap分区

注:安装k8s集群,官方建议关闭swapoff

临时关闭:swapoff -a永久关闭:vi /etc/fstab将文件中的/dev/mapper/centos-swap这行代码注释掉/dev/mapper/centos-swap swap swap defaults 0 0确认swap已经关闭:若swap行都显示 0 则表示关闭成功free -m

hosts配置

vi/etc/hosts文件内容如下:cat<>>/etc/hosts192.168.150.128master192.168.150.129node1192.168.150.130node2192.168.150.131node3EOF

docker安装

docker安装及使用在之前文章已详细介绍了,请参考:Docker容器虚拟化技术

修改Cgroup Driver

购买云服务器怎么使用

只需另外修改docker配置

修改cgroupdriver是为了消除安装k8s集群时的告警

vi/etc/docker/daemon.json修改daemon.json,新增:"exec-opts": ["native.cgroupdriver=systemd"]重启docker服务:systemctl daemon-reload systemctl restart docker查看修改后状态:dockerinfo| grep Cgroup

kubeadm安装

新建repo文件vi/etc/yum.repos.d/kubernates.repoyum -y makecache[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttps://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg更新缓存yumclean allyum-y makecache4验证源是否可用yumlist | grep kubeadm如果提示要验证yum-key.gpg是否可用,输入y。查找到kubeadm。显示版本查看k8s版本yumlist kubelet --showduplicates | sort -r安装k8s-1.17.5yuminstall -y kubelet-1.17.5 kubeadm-1.17.5 kubectl-1.17.5

设置kubelet

增加配置信息

如果不配置kubelet,可能会导致K8S集群无法启动。为实现docker使用的cgroupdriver与kubelet使用的cgroup的一致性。vi /etc/sysconfig/kubelet KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"

设置开机启动

systemctlenablekubelet

初始化镜像

如果是第一次安装k8s,手里没有备份好的镜像,可以执行如下操作 。

查看安装集群需要的镜像

kubeadm config imageslist

编写执行脚本

mkdir -p /datacd/data vi images.sh!/bin/bash下面的镜像应该去除"k8s.gcr.io"的前缀,版本换成kubeadm config images list命令获取到的版本images=( kube-apiserver:v1.17.5 kube-controller-manager:v1.17.5 kube-scheduler:v1.17.5 kube-proxy:v1.17.5 pause:3.1 etcd:3.4.3-0 coredns:1.6.5 )forimageNamein${images[@]};dodocker pull registry.cnhangzhou.aliyuncs.com/google_containers/$imageNamedocker tag registry.cnhangzhou.aliyuncs.com/google_containers/$imageNamek8s.gcr.io/$imageNamedocker rmi registry.cnhangzhou.aliyuncs.com/google_containers/$imageNamedone

执行脚本

给脚本授权chmod+ximages.sh 执行脚本 ./images.sh

保存镜像

dockersave -o k8s.1.17.5.tar k8s.gcr.io/kube-proxy:v1.17.5 k8s.gcr.io/kube-apiserver:v1.17.5 k8s.gcr.io/kube-controller-manager:v1.17.5 k8s.gcr.io/kube-scheduler:v1.17.5 k8s.gcr.io/coredns:1.6.5 k8s.gcr.io/etcd:3.4.3-0 k8s.gcr.io/pause:3.1

导入镜像

导入master节点镜像tar包

dockerload-ik8s.1.17.5.tar

导入node节点镜像tar包

docker save -o k8s.1.17.5.node.tar k8s.gcr.io/kube-proxy:v1.17.5 k8s.gcr.io/pause:3.1node节点需要kube-proxy:1.17.5 和pause:3.1,2个镜像scp k8s.1.17.5.node.tar root@192.168.150.129:/data/scp k8s.1.17.5.node.tar root@192.168.150.130:/data/scp k8s.1.17.5.node.tar root@192.168.150.131:/data/docker load -i k8s.1.17.5.node.tar

初始化集群

配置k8s集群网络

calico官网地址

官网下载地址: 放在data目录下https://docs.projectcalico.org/v3.14/manifests/calico.yamlgithub地址:https://github.com/projectcalico/calico镜像下载:dockerpull calico/cni:v3.14.2dockerpull calico/pod2daemon-flexvol:v3.14.2dockerpull calico/node:v3.14.2dockerpull calico/kube-controllers:v3.14.2配置hostname:hostnamectlset-hostname masterbashhostnamectlset-hostname node1bashhostnamectlset-hostname node2bashhostnamectlset-hostname node3bash

初始化集群信息:calico网络

kubeadminit --apiserver-advertise-address=192.168.150.128--kubernetes-version1.17.5--service-cidr=10.1.0.0/16--pod-network-cidr=10.81.0.0/16

Master执行配置命令

mkdir-p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudochown$(id -u):$(id -g) $HOME/.kube/config

node节点加入集群信息

kubeadmjoin192.168.150.128:6443--tokengu7zbw.cmiwgrxyfuqnyssz--discovery-token-ca-cert-hashsha256:4b9385612d588e210e54e880b8cea958ee904b263e5e08a710a661d1a5d5bbac

注:status 一直NotReady是因为网络没准备好

kubectlapply-fcalico.yaml

kubectl命令自动补全

echo"source <(kubectl completion bash)">> ~/.bash_profilesource~/.bash_profile

卸载集群

删除pod

kubectldeletenode--all

清空KS8集群设置

kubeadmreset

卸载通过yum安装的组件

yumerase -y kubelet kubectl kubeadm kubernetes-cniyumclean allyumremove kube*

删除文件

rm-rf ~/.kube/rm-rf /etc/kubernetes/rm-rf /etc/systemd/system/kubelet.service.drm-rf /etc/systemd/system/kubelet.servicerm-rf /usr/bin/kube*rm-rf /etc/cnirm-rf /opt/cnirm-rf /var/lib/etcdrm-rf /var/etcd

删除k8s镜像

查看镜像dockerimages删除对应的k8s容器镜像dockerrmi -f xxxx

魔兽世界云服务器下载

您好:云优数据云计算 www.yunyoushuju.cn 2核2G6M最低19.9元/月 欢迎开机

发表评论

评论列表
未查询到任何数据!