环境搭建_Kubernetes集群

环境:

IPHosts系统角色
192.168.174.132masterCenter OS 7master
192.168174.133node1Center OS 7node1
192.168.174.140node2Center OS 7node2
192.168.174.141node3Center OS 7node3
  1. 主机名设定(4台都需要一一设置)
hostnamectl set-hostname master
  1. hosts文件增加解析
192.168.174.132  master
192.168.174.133  node1
192.168.174.140  node2
192.168.174.141  node3
  1. 关闭防火墙、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
  1. 创建/etc/sysctl.d/k8s.conf文件(配置内核参数,将桥接的IPv4流量传递到iptables的链)
cat > /etc/sysctl.d/k8s.conf <<EOF
 
net.bridge.bridge-nf-call-ip6tables = 1
 
net.bridge.bridge-nf-call-iptables = 1
 
EOF

sysctl --system

并执行生效

sysctl -p /etc/sysctl.d/k8s.conf

出现以下报错:
在这里插入图片描述
解决:

#安装相关库
sudo yum install -y epel-release
sudo yum install -y conntrack ipvsadm ipset jq sysstat curl iptables
#启动系统模块
sudo modprobe br_netfilter
sudo modprobe ip_vs
#重新执行
sysctl -p /etc/sysctl.d/k8s.conf

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  #清除缓存

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

7.配置 docker 源

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

8.安装docker(Docker version 18.06.1-ce, build e68fc7a)

yum install -y docker-ce-18.06.1.ce-3.el7 #安装docker
systemctl enable docker && systemctl start docker  #启动
 
docker --version #查看版本

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

yum install -y kubelet kubeadm kubectl
 
systemctl enable kubelet && systemctl start kubelet
  1. master节点上进行如下操作
    集群初始化
    –kubernetes-version # 指定要安装的k8s版本
    –pod-network-cidr # 指定pod网络地址范围
    –service-cidr # 指定service网络地址范围
    –apiserver-advertise-address #指定api地址,这里配置成了master的私网接口IP
    –image-repository #指定仓库
kubeadm init --kubernetes-version=1.17.3 \
--apiserver-advertise-address=192.168.174.132 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

报错1:the number of available CPUs 1 is less than the required 2

在虚拟机设置设置核心数>1即可

报错2: container runtime is not running: output: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

sudo service docker restart

报错3:docker service is not enabled, please run ‘systemctl enable docker.service’

systemctl enable docker.service

报错4: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at https://kubernetes.io/docs/setup/cri/

#创建/etc/docker/daemon.json,加入
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

重启docker

systemctl restart docker
systemctl status docker

报错5: the kubelet version is higher than the control plane version. This is not a supported version skew and may lead to a malfunctional cluster. Kubelet version: “1.16.0” Control plane version: “1.15.0”

#重装kubelet 或者安装时候不指定版本
yum -y remove kubelet
yum -y install kubelet-1.12.1 kubeadm-1.12.1

报错6:error: unknown flag: --image-repository

1.13版本中我们可以增加-image-repository参数

成功返回

kubeadm join 192.168.174.132:6443 --token lf80n5.x0zbqb5d2psvbwpf \
    --discovery-token-ca-cert-hash sha256:af5fe701ae5dd7241cfca5127b849f8647d6cf33c4570f2205edcc451283d838 

11.配置kubectl工具

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

12.部署flannel网络

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

13.node 节点操作

用之前初始化集群时生成的命令加入集群

或者重新查看证书:

kubeadm token create --print-join-command

14.master查看集群

kubectl get nodes
kubectl get pod --all-namespaces

kube相关操作:

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
 
kubectl describe pod nginx-65f88748fd-scnb6 --namespace=kube-system

跟着教程慢慢部署,中间踩了许多坑。慢慢一步步去解决的
感谢大佬教程。原文:https://blog.csdn.net/zhuwentaolove/article/details/93102268

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值