linux搭建k8s集群
K8s集群部署 1、 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 2、 关闭selinux sed -i 's/enforcing/disabled/' /etc/selinux/config #永久关闭 setenforce 0 #临时关闭 3、 关闭swap swapoff -a #临时关闭 sed -ri 's/.*swap.*/#&/' /etc/fstab #永久关闭 确认下是否关闭 cat /etc/fstab 4、 根据规划设置主机名 hostnamectl set-hostname k8s-master #设置各节点主机名 5、在各节点修改添加hosts cat >> /etc/hosts << EOF 192.168.25.120 master 192.168.25.121 node1 192.168.25.122 node2 EOF 6、 将桥接的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 #生效 7、 时间同步 yum install ntpdate –y ntpdate time.windows.com 或者 ntpdate time.nist.gov ntpdate ntp.aliyun.com rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 8、 安装docker wget https://mirrors.aliyun.com/docker-ce/linux//centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo 查看docker版本列表 yum list docker-ce --showduplicates | sort - yum install docker-ce-18.06.1.ce-3.el7 systemctl enable docker && systemctl start docker docker --version cat > /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://zxnkv11f.mirror.aliyuncs.com"] } EOF 或者 中科大镜像加速: { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } 网易163镜像加速: { "registry-mirrors": ["http://hub-mirror.c.163.com"] } sudo systemctl daemon-reload sudo systemctl restart docker 9、 添加阿里云YUM软件源 cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 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 10、 安装kubeadm,kubelet和kubectl 由于版本更新频繁,这里指定版本号部署: 查看指定版本号安装 yum list kubelet --showduplicates | sort -r yum list kubeadm --showduplicates | sort -r yum list kubectl --showduplicates | sort -r yum install kubelet-1.18.0-0 kubeadm-1.18.0-0 kubectl-1.18.0-0 -y systemctl enable kubelet 11、 部署kubernetes master 在192.168.3.110(master)执行: kubeadm init \ --apiserver-advertise-address=192.168.25.120 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.18.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像地址 使用kubectl工具: mkdir –p $HOME/.kube sudo cp –I /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl get nodes 有报错信息 下面是一个例子,你可以列出所有在docker中运行的Kubernetes容器: - 'docker ps -a | grep kube | grep -v pause' 一旦你找到了失败的容器,你可以用以下方法检查它的日志: docker logs CONTAINERID 12、 加入kubernetes node 在192.168.3.111/112(node)执行 向集群添加新节点,执行在kubeadmin init输出的kubeadm join命令: kubeadm join 192.168.3.110:6443 --token 1bolhb.yi8q1hbsxm93mmh7 \ --discovery-token-ca-cert-hash sha256:b33cb41939c0f1d212619e2fa857ccd026b7f30e972e030ee45b52e80b48936f 默认token有效期为24小时,当过期之后,该token就不可用了,这时就需要重新创建 Token,操作如下: Kubeadm token create --print-join-comand 13、 部署CNI网络插件 wget https://raw.githubuser content.com/coreos/flannel/master/Documentation/kube-flannel.yml 默认镜像地址无法访问,sed命令修改为docker hub镜像仓库 kubectl apply –f https://raw.githubuser content.com/coreos/flannel/master/Documentation/kube-flannel.yml wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml wget kube-flannel.yml的时候显示连接失败 是因为网站被墙了,建议在/etc/hosts文件添加一条 199.232.68.133 raw.githubusercontent.com kubectl get pods –n kube-system 报错信息: The connection to the server raw.githubusercontent.com was refused - did you specify the right host or port? 解决办法: vi /etc/hosts ###增加下面的解析 199.232.68.133 raw.githubusercontent.com 199.232.68.133 user-images.githubusercontent.com 199.232.68.133 avatars2.githubusercontent.com 199.232.68.133 avatars1.githubusercontent.com 14、 测试kubernetes集群 在kubernetes集群中创建一个pod,验证是否正常运行
作者:南辞、归
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!