使用kubernetes集羣
master |
centOs7 |
192.168.33.225 |
docker、etcd、api-server、scheduler、controller-manager、flannel |
node1 |
centOs7 |
192.168.33.226 |
docker、kubelet、proxy、flannel |
node2 |
centOs7 |
192.168.33.227 |
docker、kubelet、proxy、flannel |
首先配置master主機操作
所有機器關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#查看防火牆狀態
firewall-cmd --state
1.安裝etcd 使用yum安裝
yum -y install etcd
#查看etcd版本
etcd --version
#查看etcd安裝的目錄
rpm -ql etcd
修改etcd.conf的配置
vi /etc/etcd/etcd.conf
#主要修改一下內容
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" //改爲0.0.0.0
ETCD_NAME="default"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.33.225:2379" //改爲本機ip地址
使用 Shift+z+z 快捷鍵保存並退出
啓動etcd服務
systemctl start etcd
#查看啓動狀態
systemctl status etcd //顯示 Active: active (running) 說明啓動成功
2.配置api-server服務
#安裝master主機上的kubernetes-master包
yum -y install kubernetes-master
#安裝完成cd到 /etc/kubernetes/ 目錄
#配置文件有以下結構
修改apiserver配置
vi apiserver
修改如下
#API服務監聽地址
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
#API服務監聽端口
KUBE_API_PORT="--port=8080"
#Etcd服務地址
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.33.225:2379"
配置DNS在一個區間
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
#對api請求控制 AlwaysAdmit 不做限制,允許所有結點訪問apiserver
KUBE_ADMISSION_CONTROL=""
啓動apiserver服務
systemctl start kube-apiserver
#查看啓動啓動狀態
systemctl status kube-apiserver
3.配置scheduler服務
修改 /etc/kubernetes/scheduler 配置文件
vi /etc/kubernetes/scheduler
新增如下配置 然後 Shift+z+z 保存退出
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=4"
KUBE_MASTER="--master=192.168.33.225:8080"
KUBE_LEADER_ELECT="--leader-elect"
配置結果如下
啓動scheduler服務
systemctl start kube-scheduler
#查看狀態
systemctl status kube-scheduler //顯示 Active: active (running) 說明啓動成功
4.配置controller-manager服務
配置 /etc/kubernetes/controller-manager
vi /etc/kubernetes/controller-manager
#新增如下配置
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=4"
KUBE_MASTER="--master=192.168.33.225:8080"
啓動kube-controller-manager 服務
systemctl start kube-controller-manager
#查看啓動狀態
systemctl status kube-controller-manager
#停止服務
systemctl stop kube-controller-manager
使用 netstat -tunlp|grep kube 查看kube的服務
至此 kubernetes 的 master 服務器配置完畢
node節點服務器配置
1.在node1服務器和node2服務器都安裝 kubernetes-node 服務
yum -y install kubernetes-node
修改 kubelet 配置
vi /etc/kubernetes/config
主要修改 指定 master節點地址 Shift+z+z 退出並保存
參數如下
# 啓用日誌標準錯誤
KUBE_LOGTOSTDERR="--logtostderr=true"
# 日誌級別
KUBE_LOG_LEVEL="--v=0"
#允許容器請求特權模式,默認false
KUBE_ALLOW_PRIV="--allow-privileged=false"
#指定master節點
KUBE_MASTER="--master=http://192.168.33.225:8080"
修改結果如下
修改 /etc/kubernetes/kubelet 文件
# Kubelet監聽IP地址
KUBELET_ADDRESS="--address=0.0.0.0"
# Kubelet監聽服務端口
KUBELET_PORT="--port=10250"
#配置kubelet主機
KUBELET_HOSTNAME="--hostname-override=192.168.33.226"
#配置apiserver 服務地址
KUBELET_API_SERVER="--api-servers=http://192.168.33.225:8080"
#默認獲取容器鏡像地址
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=""
vi /etc/kubernetes/kubelet
修改結果如下
啓動並查看狀態
systemctl start kubelet
systemctl status kubelet
修改proxy配置
vi /etc/kubernetes/proxy
增加如下配置
NODE_HOSTNAME="--hostname-override=192.168.33.226"
配置結果如下
啓動proxy服務
systemctl start kube-proxy
systemctl status kube-proxy
在master主機上執行 kubectl get nodes 查看運行的node節點機器