云其它

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > 云其它 > k8s kubeadm部署

k8s kubeadm部署实践

作者:zhsh123321

文章总结了部署Kubernetes集群的准备工作及关键步骤:关闭防火墙、禁用SELinux/swap、配置免密登陆、开启iptables转发,部署Docker和K8s,解决cgroup驱动问题,安装Calico网络插件,最终使集群节点状态变为Ready

节点机器准备工作

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

配置免密登陆

ssh-keygen -t rsa
ssh-copy-id node01

禁用SELinux

setenforce 0
/etc/sysconfig/selinux 中改SELINUX=disabled

禁用Swap

swapoff -a
/etc/fstab 中注释swap行

打开iptables桥接功能及路由转发

sysctl -a |grep bridge 过滤bridge不存在就用下面命令加载 br_netfilter
modprobe br_netfilter

/etc/sysctl.d/k8s.conf 中添加两行
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1

各节点开启转发

在 /etc/sysctl.conf 中添加
net.ipv4.ip_forward = 1

执行
sysctl -p

部署k8s集群

部署docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker
systemctl start docker
docker --version

部署kubernetes

/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

安装、开机自启kubelet

yum -y install kubelet kubectl kubeadm

systemctl enable kubelet

配置Master节点初始化

kubeadm init --pod-network-cidr=10.244.0.0/16 
--image-repository registry.aliyuncs.com/google_containers

#--pod-network-cidr 是之后网络分配给pod的地址段,需要提前规划,避免网段冲突。10.244.0.0/16为flannel默认网段

报错

[WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at https://kubernetes.io/docs/setup/cri/

则修改daemon.json,新增‘“exec-opts”: [“native.cgroupdriver=systemd”’]

[root@master ~]# more /etc/docker/daemon.json 
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

记录初始化中信息,方便节点加入

注意:

tocken 有效期24h,过期后加节点需要生成新token

kubeadm token create

kubeadm token list

kubectl查看节点状态

此时因为没有装网络插件,所以是not ready

安装kubectl命令补全

yum -y install bash-completion
source /usr/share/bash-completion/bash_completion

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

安装kubens工具用于namespace切换

插件地址:https://github.com/ahmetb/kubectx#manual-installation-macos-and-linux

tar -xf kubens_v0.9.4_linux_x86_64.tar.gz
ln -s /opt/kubens/kubens /usr/local/bin/kubens

安装网络插件Calico

获取calico.yaml

curl https://docs.projectcalico.org/manifests/calico.yaml -O

修改cidr,默认为注释

修改完安装

kubectl apply -f calico.yaml

calico安装完成后,集群转为ready状态

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文