天天看点

kubeadm部署集群

本课程将详细介绍k8s所有命令,以及命令的go源码分析,学习知其然,知其所以然

————————————————

1配置节点

hostnamectl set-hostname master01

hostnamectl set-hostname node01

hostnamectl set-hostname node02

vi /etc/hosts

192.168.198.154 master01

192.168.198.155 node01

192.168.198.156 node02

scp /etc/hosts root@node01:/etc/hosts

scp /etc/hosts root@node02:/etc/hosts

时间同步

yum install -y ntpdate

ntpdate ntp.api.bz

关闭防火墙

iptables -F

systemctl stop firewalld

systemctl disable firewalld

配置内核

# 开启路由转发功能以及iptables的过滤策略。

cat <<EOF > /etc/sysctl.d/k8s.conf

#开启iptables中ipv6的过滤规则

net.bridge.bridge-nf-call-ip6tables = 1

#开启ipv4的过滤规则

net.bridge.bridge-nf-call-iptables = 1

#开启服务器的路由转发功能

net.ipv4.ip_forward = 1

EOF

# 执行命令使修改生效。

modprobe br_netfilter

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

关闭selinux

setenforce 0

vi /etc/selinux/config

scp /etc/selinux/config root@node01:/etc/selinux/cofnig

scp /etc/selinux/config root@node02:/etc/selinux/cofnig

关闭swap

swapoff -a

vi /etc/fstab

2配置yun仓库

# step 1: 安装必要的一些系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# Step 2: 添加软件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum-config-manager --disable docker-ce-edge

yum-config-manager --disable docker-ce-test

# Step 3: 更新并安装 Docker-CE

sudo yum makecache fast

sudo yum -y install docker-ce

# Step 4: 开启Docker服务

systemctl start docker

systemctl enable docker

# Step 5: 更改cgroup driver为systemd,并且为docker添加镜像加速。

cat > /etc/docker/daemon.json <<EOF

{

"exec-opts": ["native.cgroupdriver=systemd"],

"registry-mirrors": ["https://jzbtfwo9.mirror.aliyuncs.com"]

}

EOF

systemctl daemon-reload

systemctl restart docker

3配置k8s仓库

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

4安装相关组件

yum -y install kubeadm kubelet kubernetes-cni

systemctl enable kubelet

5拉取镜像

for i in `kubeadm config images list`; do

imageName=${i#k8s.gcr.io/}

docker pull registry.aliyuncs.com/google_containers/$imageName

docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName

docker rmi registry.aliyuncs.com/google_containers/$imageName

done;

6初始化master节点

kubeadm init --kubernetes-version=v1.17.0 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.198.154

#--kubernetes-version指明要下载的镜像版本

#--pod-network-cidr 指明网络的子网掩码,此处使用flannel模型的子网掩码

#--apiserver-advertise-address 指明与master结点绑定的ip

配置kubect config

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

7配置flannel网络

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# 下载flannel的yaml文件

kubectl apply -f kube-flannel.yml

# 执行这个文件生成flannel的pods

8添加节点

kubeadm join 192.168.217.129:6443 --token vtqzkt.j0u1chomafn1offd --discovery-token-ca-cert-hash sha256:c25549dc8457677752b8d1b0547acfa8be742cbd5734802b6d2e3e9a6e7e1b73