linux怎么查看本机内存大小
259
2022-10-31
kubeadm部署k8s:v1.16.3高可用集群
总目录索引:K8s 从入门到放弃系列
一、环境说明
cat /etc/hosts192.168.10.11 node1 #master1192.168.10.14 node4 #master2192.168.10.15 node5 #master3
备注:由于是在自己虚拟机操作,因此只部署了master节点,worker节点执行的操作我会一并写出,按照操作即可。
二、环境配置
1、设置阿里云yum源(可选)
curl -o /etc/yum.repos.d/CentOS-Base.repo -rf /var/cache/yum && yum makecache
2、安装依赖包
yum install -y epel-release conntrack ipvsadm ipset jq sysstat curl iptables libseccomp
3、关闭防火墙
systemctl stop firewalld && systemctl disable firewalldiptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT
4、关闭SELinux
setenforce 0sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
5、关闭 swap 分区
swapoff -ased -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
6、加载内核模块
cat > /etc/sysconfig/modules/ipvs.modules < 7、设置内核参数 cat << EOF | tee /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-iptables=1net.bridge.bridge-nf-call-ip6tables=1net.ipv4.ip_forward=1net.ipv4.tcp_tw_recycle=0vm.swappiness=0vm.overcommit_memory=1vm.panic_on_oom=0fs.inotify.max_user_watches=89100fs.file-max=52706963fs.nr_open=52706963net.ipv6.conf.all.disable_ipv6=1net.netfilter.nf_conntrack_max=2310720EOFsysctl -p /etc/sysctl.d/k8s.conf 8、安装Docker yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo makecache fastyum install -y docker-ce-18.09.6systemctl start dockersystemctl enable docker 安装完成后配置启动时的命令,否则docker会将iptables FORWARD chain的默认策略设置为DROP 另外Kubeadm建议将systemd设置为cgroup驱动,所以还要修改daemon.json sed -i "13i ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT" /usr/lib/systemd/system/docker.servicetee /etc/docker/daemon.json <<-'EOF'{ "exec-opts": ["native.cgroupdriver=systemd"] }EOFsystemctl daemon-reloadsystemctl restart docker 9、安装kubeadm和kubelet cat < 10、拉取所需镜像 kubeadm config images list | sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#registry.cn-hangzhou.aliyuncs.com/google_containers#g' | sh -xdocker images | grep registry.cn-hangzhou.aliyuncs.com/google_containers | awk '{print "docker tag",$1":"$2,$1":"$2}' | sed -e 's/registry.cn-hangzhou.aliyuncs.com\/google_containers/k8s.gcr.io/2' | sh -xdocker images | grep registry.cn-hangzhou.aliyuncs.com/google_containers | awk '{print "docker rmi """$1""":"""$2}' | sh -x 三、安装keepalived和haproxy Kubernetes的高可用主要指的是控制平面的高可用,简单说就是有多套Master节点组件和Etcd组件,工作节点通过负载均衡连接到各Master。 将etcd与Master节点组件混布在一起: Etcd混布方式: 所需机器资源少 部署简单,利于管理 容易进行横向扩展 风险大,一台宿主机挂了,master和etcd就都少了一套,集群冗余度受到的影响比较大。 3.1master安装 yum install -y keepalived haproxy 3.2修改haproxy配置文件:(三个节点都一致) global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
listen stats
bind *:1080
stats auth admin:awesomePassword
stats refresh 5s
stats realm HAProxy\ Statistics
stats uri /admin?stats
frontend kubernetes-apiserver
mode tcp
bind *:8443
option tcplog
default_backend kubernetes-apiserver
backend kubernetes-apiserver
balance roundrobin
mode tcp
server node1 192.168.10.11:6443 check inter 5000 fall 2 rise 2 weight 1
server node4 192.168.10.14:6443 check inter 5000 fall 2 rise 2 weight 1
server node5 192.168.10.15:6443 check inter 5000 fall 2 rise 2 weight 1 3.3修改keepalived的配置文件 节点一: ! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_script check_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 3
weight -2
fall 10
rise 2
}
vrrp_instance VI_1 {
state MASTER
interface ens33 #宿主机物理网卡名称
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.16 #VIP要与自己的IP在同一网段
}
track_script {
check_haproxy
}
} 节点二: ! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_script check_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 3
weight -2
fall 10
rise 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.16
}
track_script {
check_haproxy
}
} 节点三: ! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_script check_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 3
weight -2
fall 10
rise 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 60
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.16
}
track_script {
check_haproxy
}
} 在三个master执行: cat > /etc/keepalived/check_haproxy.sh < 即可在master节点看到: 到此keepalived和haproxy准备完成。 四、初始化集群 kubeadm init \ --kubernetes-version=v1.16.3 \ --pod-network-cidr=10.244.0.0/16 \ --apiserver-advertise-address=192.168.10.11 \ --control-plane-endpoint 192.168.10.16:8443 --upload-certs 则表示初始化成功 1.为需要使用kubectl的用户进行配置 mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config 2.安装Pod Network 安装canal网络插件 wget join 192.168.10.16:8443 --token 4r7i1t.pu099ydf73ju2dq0 \ --discovery-token-ca-cert-hash sha256:65547a2b5633ea663cf9edbde3a65c3d1eb4d0f932ac2c6c6fcaf77dcd86a55f \ --control-plane --certificate-key e8aeb23b165bf87988b4b30a80635d35e45a14d958a10ec616190665c835dc6a 在任意节点执行: kubectl get node 5.进行测试master高可用: down掉master1 在其他节点查看 五、加入worker节点 kubeadm join 192.168.10.16:8443 --token 4r7i1t.pu099ydf73ju2dq0 \ --discovery-token-ca-cert-hash sha256:65547a2b5633ea663cf9edbde3a65c3d1eb4d0f932ac2c6c6fcaf77dcd86a55f
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~