您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        以下所有操作均在单master群集已完成部署的情况下进行。
所有服务器均保证防火墙常闭,核心功能selinux关闭。
| 角色 | 地址 | 安装组件 | 
|---|---|---|
| master | 192.168.142.220 | kube-apiserver kube-controller-manager kube-scheduler etcd | 
| master02 | 192.168.142.120 | kube-apiserver kube-controller-manager kube-scheduler | 
| node1 | 192.168.142.136 | kubelet kube-proxy docker flannel etcd | 
| node2 | 192.168.142.132 | kubelet kube-proxy docker flannel etcd | 
| nginx1 | 192.168.142.130 | nginx keepalived | 
| nginx2 | 192.168.142.140 | nginx keepalived | 
| VIP | 192.168.142.20 | 虚拟地址 | 
[root@lb-ma ~]# cat > /etc/yum.repos.d/nginx.repo <<EOF
[nginx]
name=nginx-repo
baseurl=http://nginx.org/packages/centos/7/\$basearch/
gpgcheck=0
EOF
[root@lb-ma ~]# yum install nginx -y
#添加stream模块实现四层转发
[root@lb-ma ~]# vim /etc/nginx/nginx.conf
###添加
stream {
   log_format  main  '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent';
    access_log  /var/log/nginx/k8s-access.log  main;
    upstream k8s-apiserver {
        server 192.168.142.220:6443;
        server 192.168.142.120:6443;
    }
    server {
                listen 6443;
                proxy_pass k8s-apiserver;
    }
    }
#开启服务
[root@lb-ma ~]# systemctl start nginx
[root@lb-ma ~]# systemctl enable nginx
[root@lb-ma ~]# yum -y install keepalived
##修改keepalived配置文件
[root@lb-ma ~]# vim /etc/keepalived/keepalived.conf
###原本的全部删除,按下面新建
! Configuration File for keepalived
global_defs {
  # 接收邮件地址
     notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   # 邮件发送地址
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id NGINX_MASTER
}
vrrp_script check_nginx {
    script "/usr/local/nginx/sbin/check_nginx.sh"
}
vrrp_instance VI_1 {
    state MASTER   #备服务器改为BACKUP
    interface ens33   #监控ens33网卡
    virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的
    priority 100    # 优先级,备服务器设置 90
    advert_int 1    # 指定VRRP 心跳包通告间隔时间,默认1秒
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.142.20/24   #VIP地址
    }
    track_script {
        check_nginx
    }
}
一旦nginx处于down状态,将会自动关闭keeplived
[root@lb-ma ~]# mkdir -p /usr/local/nginx/sbin/
[root@lb-ma ~]# vim /usr/local/nginx/sbin/check_nginx.sh
##手动进行编写
count=$(ps -ef |grep nginx |egrep -cv "grep|$$")
if [ "$count" -eq 0 ];then
    systemctl stop keepalived
fi
[root@lb-ma ~]# chmod +x /usr/local/nginx/sbin/check_nginx.sh
#开启keeplived
[root@lb-ma ~]# systemctl start keepalived
[root@lb-ma ~]# systemctl enable keepalived
此时,前面的负载均衡已经配置完毕,但是并不能起到实际的作用,原因就是后方node节点中负责进行身份识别的kubeconfig文件中的地址没有改变,无法识别。
[root@node1 ~]# vim /opt/kubernetes/cfg/bootstrap.kubeconfig
[root@node1 ~]# vim /opt/kubernetes/cfg/kube-proxy.kubeconfig
[root@node1 ~]# vim /opt/kubernetes/cfg/kubelet.kubeconfig
##三个文件全部改为
    server: https://192.168.142.20:6443    #指向VIP地址
[root@node1 ~]# systemctl restart kubelet
[root@node1 ~]# systemctl restart kube-proxy
[root@master ~]# kubectl run nginx --image=nginx
##建立pod
kubectl run --generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead.
deployment.apps/nginx created
#查看建立打的pod
[root@master ~]# kubectl get pods
NAME                    READY   STATUS    RESTARTS   AGE
nginx-dbddb74b8-7tdvp   1/1     Running   0          21s
此时,pod只能进行简单的查看,一旦查看日志会报错。为了解决这个问题,可采用下面的办法解决。
#注意日志问题
[root@master ~]# kubectl logs nginx-dbddb74b8-7tdvp
Error from server (Forbidden): Forbidden (user=system:anonymous, verb=get, resource=nodes, subresource=proxy) ( pods/log nginx-dbddb74b8-7tdvp)
###解决办法:
[root@master ~]# kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous
clusterrolebinding.rbac.authorization.k8s.io/cluster-system-anonymous created
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。