点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

操作系统环境准备
操作系统环境准备
1. 虚拟机准备
2. 配置主机名称
service NetworkManager status
service NetworkManager stop
chkconfig NetworkManager off
hostnamectl set-hostname k8s1
hostnamectl set-hostname k8s2 # 使用这个命令会立即生效且重启也生效
hostnamectl set-hostname k8s3
3. 配置/etc/hosts
192.168.1.200 k8s1 192.168.1.201 k8s2 192.168.1.202 k8s3
4. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
service iptables status
service iptabesl stop
chkconfig iptables off
cat <<EOF > etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
5. 关闭selinux
vi /etc/selinux/config
添加如下SELINUX=disabled
注释掉SELINUX=enforcing,SELINUXTYPE=targeted
或
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
6. 生产要关闭swap
关闭swap内存。 使用swap会影响性能。kubelet禁用swap。
7. 内核参数修改
/proc/sys/net/ipv4/ip_forward这个文件表示是否打开IP转发。 cat /proc/sys/net/ipv4/ip_forward,该文件内容为0,表示禁止数据包转发,1表示允许。
vi /etc/sysctl.conf && sysctl -p
net.ipv4.ip_forward = 1
8. Yum阿里云源配置及基础包安装
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.3.ce-3.el7.x86_64.rpm
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install conntrack socat ###k8s基础包
yum -y install yum-utils device-mapper-persistent-data lvm2
yum -y install docker-ce-18.06.3.ce-3.el7.x86_64.rpm



9. Docker安装
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/lib/docker
rm -rf /var/run/docker
rm -rf /usr/local/docker
rm -rf /etc/docker
yum -y install yum-utils device-mapper-persistent-data lvm2
yum -y install docker-ce-18.06.3.ce-3.el7.x86_64.rpm


10. 调整docker部分参数cggroup驱动
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://dkqah25p.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl restart docker
####默认cgroupfs,k8s官方推荐systemd,否则初始化出现Warning
11. 检查docker参数
docker info |grep Cgroup
K8S集群安装概述
K8S集群安装概述
1. Docker与k8s兼容性
如果kubernetes的版本为1.8-1.11,docker版本必须为1.11.2-1.13.1和docker-ce版本为17.03.x。 如果kubernetes的版本从1.12开始,docker版本必须为17.06/17.09/18.06。
2. K8s集群的安装方式
1)kubeadm
2)kind
3)minikube
3. Kubeadm联网安装方式示例
1)K8SYum源配置
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.gpghttps://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
2)K8S1作为Master节点安装kubeadm
安装kubelet 和kubeadm以及kubectl
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet ##启动并设置开机启动
systemctl status kubelet


启动docker
systemctl enable docker && systemctl start docker

更改kublet参数cggroup驱动
vi /etc/sysconfig/kubelet
改为如下参数
KUBELET_EXTRA_ARGS=--cgroup-driver=systemd
最新K8S版本因OS内核版本过低失败,需升级内核
uname -sr
#CentOS 7 上启用 ELRepo 仓库
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.rp
#仓库启用后,你可以使用下面的命令列出可用的内核相关包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
#安装最新的主线稳定内核
yum --enablerepo=elrepo-kernel install kernel-ml
GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
# grub2-mkconfig -o /boot/grub2/grub.cfg

Shutdown –r now

kubeadm初始化
docker rmi删除不需要的镜像:

kubeadm init --kubernetes-version=v1.23.3 --apiserver-advertise-address=192.168.1.200 --image-repository
registry.aliyuncs.com/google_containers --service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16 --ignore-
preflight-errors=Swap,NumCPU
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.1.200:6443 --token y83cea.hb60yh33lzdj0zrw \
--discovery-token-ca-cert-hash sha256:dbfbc08d087dc6f29db2a7e39407fe2f6d1681152f7eb6e059d10b79ef18acc1
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
查看节点是否正常
systemctl status kubelet

安装网络插件flannel
kubectl apply -f flannel.yml
3. K8S2、K8S3作为Node节点安装
kubeadm join 192.168.1.200:6443 --token h92ghr.eysa3nxmh8t87g84 \
--discovery-token-ca-cert-hash
sha256:636713283be0b8d4f643041bcc27ca9f6b737bb447bbfda3a24b70a9190fed09
4. 验证K8s集群是否正常


本文作者:唐田寿
本文来源:IT那活儿(上海新炬王翦团队)

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




