kubernetes单节点部署

主从服务器

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]# su
#关闭swap
[root@master ~]# sed -ri 's/.*swap.*/#&/' /etc/fstab
[root@master ~]# swapoff -a
#本地映射/etc/hosts
[root@master ~]# vim /etc/hosts
192.168.68.200 master
192.168.68.30 node1
192.168.68.105 node2
##时间同步
[root@master ~]# yum install ntpdate -y
[root@master ~]# ntpdate time.windows.com
[root@master ~]# cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
[root@master ~]# sysctl --system
##安装docker
[root@master ~]# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
[root@master ~]# yum install -y docker-ce docker-ce-cli containerd.io
[root@master ~]# systemctl enable docker --now 
##允许iptables 检查桥接流量
[root@master ~]# cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
br_netfilter
EOF
[root@master ~]# tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://jqqwsp8f.mirror.aliyuncs.com"]
}
EOF
[root@master ~]# systemctl daemon-reload
[root@master ~]# systemctl restart docker
[root@master ~]# 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=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
[root@master ~]# yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes
[root@master ~]# systemctl enable --now kubelet
[root@master ~]# tee ./images.sh <<- 'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
) 
for imageName in ${images[@]}; do 
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF
[root@master ~]# chmod +x images.sh 
[root@master ~]# ./images.sh 

主服务器

##初始化节点master
[root@master ~]# kubeadm init \
--apiserver-advertise-address=192.168.68.200 \
--control-plane-endpoint=master \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.20.9 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
##需要等一会儿
[root@master ~]# export KUBECONFIG=/etc/kubernetes/admin.conf
[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@master ~]# kubeadm join master:6443 --token 694j5u.9j2yrc4p9q97xn3w \
    --discovery-token-ca-cert-hash sha256:6476289c5a9a6159c36f8eea7c64ce8f79b95cb10a2c2299df0437b45151038f \
    --control-plane 
[root@master ~]# curl https://docs.projectcalico.org/manifests/calico.yaml -O
[root@master ~]# vim calico.yaml 
在vi里面搜一下“/192.168”就可以找到这个地方。
4222             - name: CALICO_IPV4POOL_CIDR
4223               value: "10.244.0.0/16"
[root@master ~]# kubectl apply -f calico.yaml

从服务器

[root@node1 ~]# kubeadm join master:6443 --token 694j5u.9j2yrc4p9q97xn3w \
    --discovery-token-ca-cert-hash sha256:6476289c5a9a6159c36f8eea7c64ce8f79b95cb10a2c2299df0437b45151038f