栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

搭建k8s集群

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

搭建k8s集群

1、准备机器:centos7 * 3

172.16.240.128
172.16.240.129
172.16.240.130

2、设置网卡信息(master/node)

vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=f1ce2db9-5a1c-4bae-8df0-6a8048b6e568
DEVICE=ens33
ONBOOT=yes

IPADDR=172.16.240.128
NETMASK=255.255.255.0
GATEWAY=172.16.240.2
DNS1=8.8.8.8
3、配置hostname(master/node)
[root@node01 ~]# cat /etc/hosts
172.16.240.128 node01
172.16.240.129 node02
172.16.240.130 node03
172.16.240.131 node04
4、配置阿里云镜像
cat < /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=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
5、关闭selinx(master/node)
setenforce 0  # 临时关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 永久关闭 
6、关闭防火墙(master/node)
systemctl stop firewalld 
systemctl disable firewalld 
7、关闭swap分区(master/node)
swapoff -a    # 临时关闭;关闭swap主要是为了性能考虑
free             # 可以通过这个命令查看swap是否关闭了
sed -ri 's/.*swap.*/#&/' /etc/fstab  # 永久关闭
8、加载 ipvs 模块
lsmod | grep ip_vs
modprobe ip_vs
lsmod | grep ip_vs
modprobe ip_vs_rr
modprobe ip_vs_wrr
modprobe ip_vs_sh
modprobe nf_conntrack_ipv4
lsmod | grep ip_vs
tee /etc/modules-load.d/k8s-ipvs.conf <<-'EOF'
9、开启 forward
iptables -P FORWARD ACCEPT

sed -i '/ExecStart/a ExecStartPost=/sbin/iptables -P FORWARD ACCEPT' /usr/lib/systemd/system/docker.service

systemctl daemon-reload
10、安装docker
安装docker 18.09.9
yum -y install docker-ce-18.09.9
11、启动docker 和 设置开机启动
[root@node01 ~]# docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@node01 ~]# systemctl start docker
[root@node01 ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@node01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
12、重载配置
systemctl daemon-reload
13、安装k8s命令工具(master/node)
yum install -y kubelet-1.18.1-0 kubeadm-1.18.1-0 kubectl-1.18.1-0
查看安装情况
[root@node01 ~]# yum list installed | grep kube cri-tools.x86_64                     1.23.0-0                       @kubernetes   kubeadm.x86_64                       1.18.1-0                       @kubernetes 
kubectl.x86_64                       1.18.1-0                       @kubernetes 
kubelet.x86_64                       1.18.1-0                       @kubernetes 
kubernetes-cni.x86_64                0.8.7-0                        @kubernetes 
14、配置kubelet,为kubernetes添加阿里云YUM软件源(master/node)
tee /etc/sysconfig/kubelet <<-EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
EOF
15、创建主节点(master)
kubeadm init --apiserver-advertise-address=172.16.240.128 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.1 --pod-network-cidr=10.244.0.0/16
展示以下表示成功
[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 172.16.240.128:6443 --token fokxrg.2dv3fegs1c631o4s 
    --discovery-token-ca-cert-hash sha256:7ea20f1e18c408c26bc514007f99592de379fff1784ff09db6a46433b7110483 
16、根据提示执行命令
[root@node01 ~]# mkdir -p $HOME/.kube
[root@node01 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@node01 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

 查看节点

[root@node01 ~]# kubectl get nodes
NAME     STATUS     ROLES    AGE    VERSION
node01   NotReady   master   2m4s   v1.18.1
17、安装flannel
[root@node01 ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

 18、执行join命令增加节点
[root@node02 ~]# kubeadm join 172.16.240.128:6443 --token vx46p8.xb72qbk4i4o4ge2z     --discovery-token-ca-cert-hash sha256:7ea20f1e18c408c26bc514007f99592de379fff1784ff09db6a46433b7110483 

 报错发现token过期,重新生成token命令

[root@node01 .kube]# kubeadm token create --print-join-command

19、在node02,node03节点运行命令添加节点
[root@node02 ~]# kubeadm join 172.16.240.128:6443 --token vx46p8.xb72qbk4i4o4ge2z     --discovery-token-ca-cert-hash sha256:7ea20f1e18c408c26bc514007f99592de379fff1784ff09db6a46433b7110483 

 命令:

init之后没有token或忘记
kubeadm token create --print-join-command


重启kubelet
systemctl daemon-reload
systemctl restart kubelet


node节点kubeadm join失败
kubeadm -y reset
kubeadm join 

删除
kubectl delete -f ***.yaml

生效
kubectl apply -f ***.yaml
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893585.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号