kubeadm安装kubernetes1.18.5集群

kubeadm是一个快速部署kubernetes集群的工具,可用于开发,kubeadm init 以及 kubeadm join 这两个命令可以快速创建 kubernetes 集群。

环境信息:
1.操作系统:CentOS Linux release 7.7.1908 (Core)
2.docker:19.03.12
3.kubernetes:1.18.5

组件配置信息:

节点名称节点IP
master192.168.13.132
node1192.168.13.130
node2192.168.13.128

1. 准备环境,每个节点都需要执行:

1.1关闭防火墙,禁止防火墙开机启动

$ systemctl stop firewalld
$ systemctl disable firewalld.service

1.2关闭selinux

$ sed -i 's/enforcing/disabled/' /etc/selinux/config
$ setenforce 0

1.3关闭swap

$ swapoff -a 			 #临时 
$ vi /etc/fstab 		 #永久 ,然后注释SWAP分区

在这里插入图片描述
1.4修改主机和host解析

$ vi /etc/hosts

在这里插入图片描述
1.5安装依赖包

$ yum install -y epel-release
$ yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget

1.6同步时间,加载内核模块

$ ntpdate time1.aliyun.com
$ modprobe ip_vs_rr
$ modprobe br_netfilter

1.7修改内核参数

$ cat > /etc/sysctl.d/kubernetes.conf << EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF

$ sysctl -p /etc/sysctl.d/kubernetes.conf

2. 安装kubernetes和docker

2.1.添加kubernetes的yum源

$ cat <<EOF >>/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
EOF

2.2添加docker的yum源

$ wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.3安装docker

$ yum -y install docker-ce

2.4启动docker

$ systemctl enable docker
$ systemctl start docker
$ cat <<EOF >>/etc/docker/daemon.json
{
"registry-mirrors": ["https://dlbpv56y.mirror.aliyuncs.com"]
}
EOF
$ systemctl restart docker

2.5安装kubeadm,kubelet和kubectl

$ yum -y install kubelet kubeadm kubectl
$ systemctl enable kubelet

2.6部署Kubernetes Master
这个需要在master节点安装

$ kubeadm init --apiserver-advertise-address=192.168.13.132 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.5 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

安装完成之后,输出内容的最后一句保存下来,后面node加入需要用到,类似下面这样的:

kubeadm join 192.168.13.132:6443 --token 4s44ov.pb2rgo6uxw9pnbg2  
--discovery-token-ca-cert-hash sha256:2afacd14f31cc535ae3e35204ba597e6ae356fe447ab165cb09e7ed2fd0a93dd

然后在master节点创建文件夹

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

3.安装flannel

由于国内网络问题,所以需要手动pull一个镜像,然后更改名称,因为kube-flannel.yml里面引用的有quay.io/coreos/flannel。
在集群的所有机器上执行:
3.1手动拉取flannel的镜像

$ docker pull easzlab/flannel:v0.11.0-amd64

重新打标签

$ docker tag easzlab/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64

删除无用镜像

$ docker rmi easzlab/flannel:v0.11.0-amd64

3.2下载并安装flannel资源配置清单,在master执行

$ wget  https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
$ kubectl apply -f kube-flannel.yml         #执行kube-flannel.yml文件

如果执行报错如下,是文件问题,使用我的kube-falannel.yml文件,百度网盘链接:https://pan.baidu.com/s/1Z-tES6630Mq_634FY6F_wg 提取码:jvta :

error: error parsing kube-flannel.yml: error converting YAML to JSON: yaml: line 123: mapping values are not allowed in this context

4.node节点加入集群

4.1把刚才在kubeadm join 上保存的内容,在node节点上执行,注意复制的内容是否有斜杠:

$ kubeadm join 192.168.13.132:6443 --token 4s44ov.pb2rgo6uxw9pnbg2 --discovery-token-ca-cert-hash sha256:2afacd14f31cc535ae3e35204ba597e6ae356fe447ab165cb09e7ed2fd0a93dd

4.2查看集群的node状态

$ kubectl get nodes

在这里插入图片描述
4.3测试一下kubernetes集群
在Kubernetes集群中创建一个pod,设置80端口以及Service为NodePort的外网访问

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

查询pod是否成功READY,并查看端口
在这里插入图片描述

访问任意NodeIP加端口,都可以访问则成功,http://192.168.13.128:30915/
在这里插入图片描述
加入新的node节点到集群需要token,token默认的有效期为24小时,需重新生成,如下:

#查看当前的token列表
$ kubeadm token list
# 重新生成新的token
$ kubeadm token create
# 重新生成新的ca证书
$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
#节点加入集群
$ kubeadm join --token 新的token --discovery-token-ca-cert-hash sha256:新的ca证书
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值