Kubeadm部署k8s 1.18高可用集群

网友投稿 276 2022-09-11

Kubeadm部署k8s 1.18高可用集群

第一部分 基础环境

1、平台规划

单master集群多master集群

2、配置要求

master:2C 4G 20Gnode:4C 8G 40G

3、集群部署方式

kubeadm方式 二进制包方式

第二部分 系统初始化

1、关闭服务

systemctl disable --now firewalldsystemctl disable --now postfixsystemctl disable --now NetworkManager

2、关闭swap

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3、关闭SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

4、配置主机名

hostnamectl set-hostname k8s-master-01hostnamectl set-hostname k8s-node-01

5、配置host

# 仅master节点cat >>/etc/hosts<

4、将桥接的IPv4流量传递到iptables的链

cat <

5、时钟同步

yum -y install chronysystemctl enable --now chronyd && chronyc sources

6、安装yum源

curl -o /etc/yum.repos.d/CentOS-Base.repo -y install epel-release# 建立缓存

7、安装基础工具

yum -y install lrzsz tree unzip openssl-devel pcre-devel rsync wget tree lsof telnet zip net-tools bind-utils vim git nc psmisc jq

8、配置资源限制

echo -e 'ulimit -c unlimited' >> /etc/profileecho -e 'ulimit -s unlimited' >> /etc/profileecho -e 'ulimit -SHn 65535' >> /etc/profileecho -e 'export HISTTIMEFORMAT="%F %T `whoami` "' >>/etc/profile# echo -e 'export TMOUT=300' >>/etc/profile# echo -e "HISTFILESIZE=100" >>/etc/profilesource /etc/profilecat >>/etc/security/limits.conf <

9、内核参数优化

cat <

10、更新系统

yum -y update --exclude=kernel*reboot

第三部分 集群安装

1、安装Docker

# 卸载旧版本yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine# 安装yum源yum -y install yum-utilsyum-config-manager \ --add-repo \ 安装dockeryum list docker-ce --showduplicates |sort -ryum -y install docker-ce-19.03.* docker-ce-cli-19.03.* containerd.io# 配置dockermkdir -pv /data/docker /etc/dockercat <

2、安装kubeadm、kubelet和kubectl

# 安装yum源cat <

3、安装IPVS模块

# 安装ipvsyum -y install conntrack ipvsadm ipset libseccomp sysstat# 配置ipvs模块(本机内核版本:3.10.0-1160.el7.x86_64)# 在内核4.19+版本nf_conntrack_ipv4已经更改为nf_conntrack;在4.19以下使用nf_conntrack_ipv4modprobe -- ip_vsmodprobe -- ip_vs_rrmodprobe -- ip_vs_wrrmodprobe -- ip_vs_shmodprobe -- nf_conntrack_ipv4cat <

4、部署Master

# 创建目录mkdir -pv /data/kubernetescd /data/kubernetes# 下载镜像kubeadm config images listkubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers# 打印初始化配置kubeadm config print init-defaults > kubeadm-config.yaml---kubeadm-config.yamlapiVersion: kubeadm.k8s.io/v1beta2bootstrapTokens:- groups: - system:bootstrappers:kubeadm:default-node-token token: abcdef.0123456789abcdef ttl: 24h0m0s usages: - signing - authenticationkind: InitConfigurationlocalAPIEndpoint: advertiseAddress: 192.168.94.138 bindPort: 6443nodeRegistration: criSocket: /var/run/dockershim.sock name: k8s-master-01 taints: - effect: NoSchedule key: node-role.kubernetes.io/master---apiServer: timeoutForControlPlane: 4m0sapiVersion: kubeadm.k8s.io/v1beta2certificatesDir: /etc/kubernetes/pkiclusterName: kubernetescontrollerManager: {}dns: type: CoreDNSetcd: local: dataDir: /var/lib/etcdimageRepository: registry.aliyuncs.com/google_containerskind: ClusterConfigurationkubernetesVersion: v1.18.0networking: dnsDomain: cluster.local serviceSubnet: 10.96.0.0/12 podSubnet: 10.244.0.0/16scheduler: {}---apiVersion: kubeproxy.config.k8s.io/v1alpha1kind: KubeProxyConfigurationkind: KubeProxyConfigurationfeatureGates: SupportIPVSProxyMode: truemode: ipvskubeadm init --config=kubeadm-config.yaml --upload-certs |tee kubeadm-init.log# 配置kubectl工具mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

5、加入node节点

kubeadm join 192.168.94.138:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:4b2e7c50a1a3f9725093c0af9fbb8c5f4995a0ce5cbce03d628716ae5c0e4293# 主节点执行kubectl get node

6、部署网络组件

cd /etc/kuberneteskubectl apply -f apply -f kube-flannel.yml# 注意:如果您使用自定义podCIDR(不是10.244.0.0/16),您首先需要下载上述清单并修改网络以匹配您的。

7、集群状态验证

# 启动集systemctl enable --now kubelet# 验证集群状态kubectl get pod -A# 创建podkubectl create deployment nginx --image=nginxkubectl expose deploy nginx --port=80 --type=NodePortkubectl get pod,svc访问:# 30210 通过查看映射到本机的端口获得# 查看代理模式curl localhost:10249/proxyModekubectl get cm kube-proxy -n kube-system -o yaml |grep mode

第四部分 高可用集群部署

1、待实现

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:春节营销带来增长动力,百威亚太一季度中国销量增长84.6%!
下一篇:Kubernetes----Pod配置资源配额
相关文章

 发表评论

暂时没有评论,来抢沙发吧~