weblogic集群部署与负载均衡_K8S集群部署、负载均衡与安全管理
1.1 集群部署1.1.1 原理LoadBanlance->Service->Node->Pod->Container1.1.2 集群规划1.1.3 Master节点配置安装软件参考:单点配置查看节点信息:kubectl get nodes1.1.3.1 配置apiserverKUBE_API_ADDRESS="--address=0.0.0.0"KUBE_API_PORT
1.1 集群部署
1.1.1 原理
LoadBanlance->Service->Node->Pod->Container
1.1.2 集群规划
1.1.3 Master节点配置
安装软件参考:单点配置
查看节点信息:kubectl get nodes
1.1.3.1 配置apiserver
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet_port=10250"
KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""
1.1.3.2 配置etcd:/etc/etcd/etcd.conf
设置监听子节点端口ETCD_LISTEN_PEER_URLS,服务端口ETCD_LISTEN_CLIENT_URLS
设置对外广播本节点端口ETCD_INITIAL_ADVERTISE_PEER_URLS,对外服务端口ETCD_ADVERTISE_CLIENT_URLS,初始化节点列表ETCD_INITIAL_CLUSTER(所有节点全部启动后才能正常服务),初始化集群名称:ETCD_INITIAL_CLUSTER_TOKEN,初始化集群状态ETCD_INITIAL_CLUSTER_STATE(第一次启动为new)。
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="master"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.75.195:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.75.195:2379"
ETCD_INITIAL_CLUSTER="master=http://192.168.75.195:2380,etcd01=http://192.168.71.2:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-k8s"
ETCD_INITIAL_CLUSTER_STATE="new"
启动服务(节点一样,谁先启动,谁是master):systemctl start etcd
查看节点:etcdctl member list
增加节点:etcdctl member add 名称 url
删除节点:etcdctl member remove {$memberID}
1.1.3.3 安装flannel
yum install flannel –y
1.1.3.4 配置flannel
etcdctl mk /atomic.io/network/config '{ "Network": "172.16.0.0/16" }'
1.1.3.5 重启服务
systemctl restart docker etcd kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy flanneld
1.1.4 Node节点配置
1.1.4.1 安装软件
yum install docker -y
yum install kubernetes -y
yum install flannel –y
1.1.4.2 安装证书:将服务器的证书文件copy到node中
scp /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt root@192.168.71.2:/etc/docker/certs.d/registry.access.redhat.com/
证书用于验证集群中的节点的相互认证和加密传输,可以自行签发。使用openssl或cfssl等工具。
1.1.4.3 设置ETCD:/etc/etcd/etcd.conf
设置监听子节点端口ETCD_LISTEN_PEER_URLS,服务端口ETCD_LISTEN_CLIENT_URLS
设置对外广播本节点端口ETCD_INITIAL_ADVERTISE_PEER_URLS,对外服务端口ETCD_ADVERTISE_CLIENT_URLS,初始化节点列表ETCD_INITIAL_CLUSTER(所有节点全部启动后才能正常服务),初始化集群名称:ETCD_INITIAL_CLUSTER_TOKEN,初始化集群状态ETCD_INITIAL_CLUSTER_STATE(第一次启动为new)。
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
ETCD_NAME="etcd01"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.71.2:2380"
ETCD_ADVERTISE_CLIENT_URLS=http://192.168.71.2:2379
ETCD_INITIAL_CLUSTER="master=http://192.168.75.195:2380,etcd01=http://192.168.71.2:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-k8s"
ETCD_INITIAL_CLUSTER_STATE="new"
1.1.4.4 设置master
vi /etc/kubernetes/config
KUBE_MASTER="--master=http://192.168.75.195:8080"
1.1.4.5 设置ApiServer
vi /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_HOSTNAME="--hostname-override=192.168.71.2"
KUBELET_API_SERVER="--api-servers=http://192.168.75.195:8080"
1.1.4.6 设置flanneld
vi /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS=http://192.168.75.195:2379
1.1.5 运行服务
systemctl restart docker kubelet kube-proxy flanneld
1.1.6 运行容器
kubectl run my-nginx-deployment2 --replicas=5 --image=nginx --port=80
kubectl expose deployment/my-nginx-deployment2 --type="NodePort" --port=80 --target-port=80
查看pods
使用describe查看,可以看到5个pod分布在两台机器上。
查看端口
访问测试
1.1.7 负载均衡
内部使用kube-proxy进行负载均衡。也可是Ingress进行更多控制。
1.1.8 应用:创建2个服务,分别指定外部服务端口和ip地址
192.168.71.2:8081 nginx
192.168.71.2:8022 ssh
1.2 安全管理
可以使用SSL工具openssl或cfssl进行签名发送各节点证书进行相互验证。
1.3 Web管理界面DashBoard
使用对应版本的dashboard安装。
1.4 卸载清理k8s
systemctl stop etcd kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy flanneld
yum remove etcd kubernetes flannel
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd
1.5 安装kubeadm
/etc/yum.repos.d目录下
修改:kubenetes.repo
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1 #开启gpg校验
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
更多推荐
所有评论(0)