本课程将详细介绍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