docker安装
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce docker-ce-cli containerd.io vim -y
mkdir -p /etc/docker
#加速阿里配置源
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://hzfyo6gg.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
docker run hello-world
安装K8S软件
装一些必要软件
yum install -y gcc gcc-c++ wget
系统参数配置
#关闭防火墙和SELINUX
systemctl stop firewalld
sed -i 's/enforcing/disabled/' /etc/selinux/config
[root@docker-jjy-2 ~]# more /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# disabled - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of disabled.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@docker-jjy-2 ~]#
setenforce 0
[root@docker-jjy-4 ~]# getenforce
Permissive
#关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
#配置sys参数
vi /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
sysctl --system
# 更新时间
yum install ntpdate -y
[root@docker-jjy-4 ~]# ntpdate time.windows.com
3 Jun 16:49:15 ntpdate[12496]: adjust time server 52.231.114.183 offset -0.005426 sec
[root@docker-jjy-2 ~]# date
Thu Jun 3 16:31:06 CST 2021
[root@docker-jjy-2 ~]#
配置k8s源
cat < 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
mv kubernetes.repo /etc/yum.repos.d/
安装最新的k8s软件
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
升级内核
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum --enablerepo=elrepo-kernel install kernel-ml
cp /etc/default/grub /etc/default/grub_bak #备份一下
vi /etc/default/grub #saved改成0
GRUB_DEFAULT=saved ==> GRUB_DEFAULT=0
grub2-mkconfig -o /boot/grub2/grub.cfg
systemctl enable docker.service
reboot
#检查是否已经是5.*
[root@docker-jjy-4 ~]# uname -r
5.12.9-1.el7.elrepo.x86_64
[root@docker-jjy-4 ~]#
加入K8S集群
kubeadm join 10.16.8.135:6443 --token wgpqyb.qg685fw8jq7ytixt --discovery-token-ca-cert-hash sha256:2285ae813e5e743e2277ae98ac6737f1fd0128dec4aab26d0da8fe9d0f149a4c
[root@docker-jjy-4 ~]# kubeadm join 10.16.8.135:6443 --token wgpqyb.qg685fw8jq7ytixt --discovery-token-ca-cert-hash sha256:2285ae813e5e743e2277ae98ac6737f1fd0128dec4aab26d0da8fe9d0f149a4c
[preflight] Running pre-flight checks
[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/
[WARNING Hostname]: hostname "docker-jjy-4.novalocal" could not be reached
[WARNING Hostname]: hostname "docker-jjy-4.novalocal": lookup docker-jjy-4.novalocal on 192.168.90.1:53: no such host
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...
This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.
Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
[root@docker-jjy-4 ~]#
查看状态
加入前的kube-system
[root@docker-jjy-1 ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-545d6fc579-qmj77 1/1 Running 0 5h47m
coredns-545d6fc579-rwd6t 1/1 Running 0 5h47m
etcd-docker-jjy-1.novalocal 1/1 Running 0 5h47m
kube-apiserver-docker-jjy-1.novalocal 1/1 Running 0 5h47m
kube-controller-manager-docker-jjy-1.novalocal 1/1 Running 0 5h47m
kube-flannel-ds-6p48b 1/1 Running 0 71m
kube-flannel-ds-hn8ws 1/1 Running 0 71m
kube-flannel-ds-p24kj 1/1 Running 0 71m
kube-proxy-8fnp8 1/1 Running 0 87m
kube-proxy-9fnv5 1/1 Running 0 88m
kube-proxy-gpb6f 1/1 Running 0 5h47m
kube-scheduler-docker-jjy-1.novalocal 1/1 Running 0 5h47m
[root@docker-jjy-1 ~]#
加入中的kube-system
[root@docker-jjy-1 ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-545d6fc579-qmj77 1/1 Running 0 5h49m
coredns-545d6fc579-rwd6t 1/1 Running 0 5h49m
etcd-docker-jjy-1.novalocal 1/1 Running 0 5h49m
kube-apiserver-docker-jjy-1.novalocal 1/1 Running 0 5h49m
kube-controller-manager-docker-jjy-1.novalocal 1/1 Running 0 5h49m
kube-flannel-ds-6p48b 1/1 Running 0 73m
kube-flannel-ds-hn8ws 1/1 Running 0 73m
kube-flannel-ds-hqsqv 0/1 Init:0/1 0 16s
kube-flannel-ds-p24kj 1/1 Running 0 73m
kube-proxy-8fnp8 1/1 Running 0 89m
kube-proxy-9fnv5 1/1 Running 0 90m
kube-proxy-gpb6f 1/1 Running 0 5h49m
kube-proxy-kcrbr 0/1 ContainerCreating 0 16s
kube-scheduler-docker-jjy-1.novalocal 1/1 Running 0 5h49m
[root@docker-jjy-1 ~]#
加入后的kube-system
[root@docker-jjy-1 ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-545d6fc579-qmj77 1/1 Running 0 5h50m
coredns-545d6fc579-rwd6t 1/1 Running 0 5h50m
etcd-docker-jjy-1.novalocal 1/1 Running 0 5h50m
kube-apiserver-docker-jjy-1.novalocal 1/1 Running 0 5h50m
kube-controller-manager-docker-jjy-1.novalocal 1/1 Running 0 5h50m
kube-flannel-ds-6p48b 1/1 Running 0 74m
kube-flannel-ds-hn8ws 1/1 Running 0 74m
kube-flannel-ds-hqsqv 1/1 Running 0 56s
kube-flannel-ds-p24kj 1/1 Running 0 74m
kube-proxy-8fnp8 1/1 Running 0 90m
kube-proxy-9fnv5 1/1 Running 0 91m
kube-proxy-gpb6f 1/1 Running 0 5h50m
kube-proxy-kcrbr 1/1 Running 0 56s
kube-scheduler-docker-jjy-1.novalocal 1/1 Running 0 5h50m
[root@docker-jjy-1 ~]#
加入后的node
[root@docker-jjy-1 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-jjy-1.novalocal Ready control-plane,master 5h51m v1.21.1
docker-jjy-2.novalocal Ready 92m v1.21.1
docker-jjy-3.novalocal Ready 91m v1.21.1
docker-jjy-4.novalocal Ready 106s v1.21.1
[root@docker-jjy-1 ~]#