成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Kubernetes集群生產(chǎn)環(huán)境搭建全過程

everfight / 1880人閱讀

摘要:本文詳細(xì)講解如何搭建高可用的集群,以下簡(jiǎn)稱由三臺(tái)服務(wù)器組成集群命名為,,,用來代替集群搭建首先搭建集群為集群的核心組成部分,負(fù)責(zé)所有集群配置信息和服務(wù)信息的存儲(chǔ),所以必須要保證高可用,此處采用的靜態(tài)服務(wù)發(fā)現(xiàn),即在啟動(dòng)的時(shí)候,確定的。

本文詳細(xì)講解如何搭建高可用的Kubernetes集群,以下簡(jiǎn)稱k8s

由三臺(tái)服務(wù)器(CentOS 7.0)組成master集群,命名為m1,m2,m3,ip用m1 m2 m3來代替

etcd集群搭建

首先搭建etcd集群,etcd為k8s集群的核心組成部分,負(fù)責(zé)所有集群配置信息和服務(wù)信息的存儲(chǔ),所以必須要保證高可用,此處采用etcd的靜態(tài)服務(wù)發(fā)現(xiàn),即在etcd啟動(dòng)的時(shí)候,確定etcd node的ip。

yum安裝etcd yum install -y etcd

分別在三臺(tái)機(jī)器啟動(dòng)etcd進(jìn)程(實(shí)際操作中需要將m1 m2 m3替換成實(shí)際的ip地址)
m1:

etcd -name infra1 -initial-advertise-peer-urls http://m1:2380 -listen-peer-urls http://m1:2380 -listen-client-urls http://m1:2379,http://127.0.0.1:2379 -advertise-client-urls http://m1:2379 -initial-cluster-token etcd-cluster-1 -initial-cluster infra1=http://m1:2380,infra2=http://m2:2380,infra3=http://m3:2380 -initial-cluster-state new

m2:

etcd -name infra2 -initial-advertise-peer-urls http://m2:2380 -listen-peer-urls http://m2:2380 -listen-client-urls http://m2:2379,http://127.0.0.1:2379 -advertise-client-urls http://m2:2379 -initial-cluster-token etcd-cluster-1 -initial-cluster infra1=http://m1:2380,infra2=http://m2:2380,infra3=http://m3:2380 -initial-cluster-state new

m3:

etcd -name infra3 -initial-advertise-peer-urls http://m3:2380 -listen-peer-urls http://m3:2380 -listen-client-urls http://m3:2379,http://127.0.0.1:2379 -advertise-client-urls http://m3:2379 -initial-cluster-token etcd-cluster-1 -initial-cluster infra1=http://m1:2380,infra2=http://m2:2380,infra3=http://m3:2380 -initial-cluster-state new

集群?jiǎn)?dòng)后,選取一臺(tái)機(jī)器執(zhí)行 etcdctl cluster-health

如果出現(xiàn)3個(gè)類似 member cbfa6350b369c3a is healthy 的字樣,說明etcd集群部署成功。

實(shí)戰(zhàn)中采取了systemd來進(jìn)行管理
新建文件 /usr/lib/systemd/system/etcd.service
內(nèi)容如下:

[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
WorkingDirectory=/root
ExecStart=etcd -name infra1 -initial-advertise-peer-urls http://m1:2380 -listen-peer-urls http://m1:2380 -listen-client-urls http://m1:2379,http://127.0.0.1:2379 -advertise-client-urls http://m1:2379 -initial-cluster-token etcd-cluster-1 -initial-cluster infra1=http://m1:2380,infra2=http://m2:2380,infra3=http://m3:2380 -initial-cluster-state new
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

這樣可以使用 systemctl start etcd來啟動(dòng)服務(wù)

Kubernete master搭建

master搭建是通過自動(dòng)化搭建腳本實(shí)現(xiàn)的 腳本內(nèi)容如下

#!/bin/bash
echo "################ Prerequisites..."
systemctl stop firewalld
systemctl disable firewalld
yum -y install ntp
systemctl start ntpd
systemctl enable ntpd

echo "################ Installing flannel..."
#安裝flannel
yum install flannel -y

echo "################ Add subnets for flannel..."
A_SUBNET=172.17.0.0/16
B_SUBNET=192.168.0.0/16
C_SUBNET=10.254.0.0/16

FLANNEL_SUBNET=$A_SUBNET
SERVICE_SUBNET=$B_SUBNET
OCCUPIED_IPs=(`ifconfig -a | grep "inet " | cut -d ":" -f 2 |cut -d " " -f 1 | grep -v "^127"`)
for ip in ${OCCUPIED_IPs[@]};do
    if [ $(ipcalc -n $ip/${A_SUBNET#*/}) == $(ipcalc -n ${A_SUBNET}) ];then
        FLANNEL_SUBNET=$C_SUBNET
        SERVICE_SUBNET=$B_SUBNET
        break
    fi
    if [ $(ipcalc -n $ip/${B_SUBNET#*/}) == $(ipcalc -n ${B_SUBNET}) ];then
        FLANNEL_SUBNET=$A_SUBNET
        SERVICE_SUBNET=$C_SUBNET
        break
    fi
    if [ $(ipcalc -n $ip/${C_SUBNET#*/}) == $(ipcalc -n ${C_SUBNET}) ];then
        FLANNEL_SUBNET=$A_SUBNET
        SERVICE_SUBNET=$B_SUBNET
        break
    fi
done

while ((1));do
    sleep 2
    etcdctl cluster-health
    flag=$?
    if [ $flag == 0 ];then
etcdctl mk /coreos.com/network/config "{"Network":""${FLANNEL_SUBNET}""}"
        break
    fi
done

echo "################ Starting flannel..."
#此處將m1 m2 m3 換成實(shí)際的ip
echo -e "FLANNEL_ETCD="http://m1:2379,http://m2:2379,http://m3:2379"
FLANNEL_ETCD_KEY="/coreos.com/network"" > /etc/sysconfig/flanneld
systemctl enable flanneld
systemctl start flanneld

echo "################ Installing K8S..."
yum -y install kubernetes
echo "KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet_port=10250"
KUBE_ETCD_SERVERS="--etcd_servers=http://m1:2379,http://m2:2379,http://m3:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range="${SERVICE_SUBNET}""
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""" > /etc/kubernetes/apiserver

echo "################ Start K8S components..."
for SERVICES in kube-apiserver kube-controller-manager kube-scheduler; do
    systemctl restart $SERVICES
    systemctl enable $SERVICES
    systemctl status $SERVICES
done
Kubernete node搭建

node的搭建也是通過自動(dòng)化部署腳本實(shí)現(xiàn)的,腳本內(nèi)容如下:

#!/bin/bash

echo "################ Prerequisites..."
#關(guān)閉firewall 開啟ntp時(shí)間同步
systemctl stop firewalld
systemctl disable firewalld
yum -y install ntp
systemctl start ntpd
systemctl enable ntpd

#安裝kubernetes所需要的幾個(gè)軟件
yum -y install kubernetes docker flannel bridge-utils


#此處使用了一個(gè)vip 命名為vip 實(shí)際部署時(shí)需要替換為你的集群的vip 使用此ip的服務(wù)有 kube-master(8080) registry(5000) skydns(53)

echo "################ Configuring nodes..."
echo "################ Configuring nodes > Find Kube master..."
KUBE_REGISTRY_IP="vip"
KUBE_MASTER_IP="vip"
echo "################ Configuring nodes > Configuring Minion..."
echo -e "KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow_privileged=false"
KUBE_MASTER="--master=http://${KUBE_MASTER_IP}:8080"" > /etc/kubernetes/config
echo "################ Configuring nodes > Configuring kubelet..."
#取每個(gè)node機(jī)器的eth0的ip作為標(biāo)識(shí)
KUBE_NODE_IP=`ifconfig eth0 | grep "inet " | awk "{print $2}"`

#api_servers 使用master1 master2 master3的ip數(shù)組形式
echo -e "KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname_override=${KUBE_NODE_IP}"
KUBELET_API_SERVER="--api_servers=http://m1:8080,http://m2:8080,http://m3:8080"
KUBELET_ARGS="--cluster-dns=vip --cluster-domain=k8s --pod-infra-container-image=${KUBE_REGISTRY_IP}:5000/pause:latest"" > /etc/kubernetes/kubelet


#flannel讀取etcd配置信息 為本機(jī)的docker0分配ip 保證node集群子網(wǎng)互通
echo "################ Configuring flannel..."
echo -e "FLANNEL_ETCD="http://m1:2379,http://m2:2379,http://m3:2379"
FLANNEL_ETCD_KEY="/coreos.com/network"" > /etc/sysconfig/flanneld


echo "################ Accept private registry..."
echo "OPTIONS="--selinux-enabled --insecure-registry ${KUBE_REGISTRY_IP}:5000"
DOCKER_CERT_PATH=/etc/docker" > /etc/sysconfig/docker

echo "################ Start K8S Components..."
systemctl daemon-reload
for SERVICES in kube-proxy flanneld; do
    systemctl restart $SERVICES
    systemctl enable $SERVICES
    systemctl status $SERVICES
done

echo "################ Resolve interface conflicts..."
systemctl stop docker
ifconfig docker0 down
brctl delbr docker0

echo "################ Accept private registry..."
echo -e "OPTIONS="--selinux-enabled --insecure-registry ${KUBE_REGISTRY_IP}:5000"
DOCKER_CERT_PATH=/etc/docker" > /etc/sysconfig/docker

for SERVICES in docker kubelet; do
    systemctl restart $SERVICES
    systemctl enable $SERVICES
    systemctl status $SERVICES
done

至此,Kubernetes master和node的搭建就結(jié)束了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/32476.html

相關(guān)文章

  • Kubernetes集群生產(chǎn)環(huán)境搭建過程

    摘要:本文詳細(xì)講解如何搭建高可用的集群,以下簡(jiǎn)稱由三臺(tái)服務(wù)器組成集群命名為,,,用來代替集群搭建首先搭建集群為集群的核心組成部分,負(fù)責(zé)所有集群配置信息和服務(wù)信息的存儲(chǔ),所以必須要保證高可用,此處采用的靜態(tài)服務(wù)發(fā)現(xiàn),即在啟動(dòng)的時(shí)候,確定的。 本文詳細(xì)講解如何搭建高可用的Kubernetes集群,以下簡(jiǎn)稱k8s 由三臺(tái)服務(wù)器(CentOS 7.0)組成master集群,命名為m1,m2,m3,i...

    William_Sang 評(píng)論0 收藏0
  • Kubernetes集群生產(chǎn)環(huán)境搭建過程

    摘要:本文詳細(xì)講解如何搭建高可用的集群,以下簡(jiǎn)稱由三臺(tái)服務(wù)器組成集群命名為,,,用來代替集群搭建首先搭建集群為集群的核心組成部分,負(fù)責(zé)所有集群配置信息和服務(wù)信息的存儲(chǔ),所以必須要保證高可用,此處采用的靜態(tài)服務(wù)發(fā)現(xiàn),即在啟動(dòng)的時(shí)候,確定的。 本文詳細(xì)講解如何搭建高可用的Kubernetes集群,以下簡(jiǎn)稱k8s 由三臺(tái)服務(wù)器(CentOS 7.0)組成master集群,命名為m1,m2,m3,i...

    Forelax 評(píng)論0 收藏0
  • 樂心醫(yī)療的 Kubernetes云平臺(tái)建設(shè)實(shí)踐

    摘要:宋體自年被開源以來,很快便成為了容器編排領(lǐng)域的標(biāo)準(zhǔn)。宋體年月,樂心醫(yī)療的第一個(gè)生產(chǎn)用集群正式上線。所以于年推出后,樂心醫(yī)療的運(yùn)維團(tuán)隊(duì)在開會(huì)討論之后一致決定盡快遷移到。Kubernetes 自 2014 年被 Google 開源以來,很快便成為了容器編排領(lǐng)域的標(biāo)準(zhǔn)。因其支持自動(dòng)化部署、大規(guī)模可伸縮和容器化管理等天然優(yōu)勢(shì),已經(jīng)被廣泛接納。但由于 Kubernetes 本身的復(fù)雜性,也讓很多企業(yè)的...

    testHs 評(píng)論0 收藏0
  • Kubernetes的幾種主流部署方式01-minikube部署

    摘要:代表的解決方案為。雖然官網(wǎng)列出的部署方式很多,但也不用被這么多種部署方式搞糊涂了。雖然只是一條命令,但其實(shí)執(zhí)行了很多步驟命令執(zhí)行后輸出如下可以看到,主要做了這些事創(chuàng)建了名為的虛擬機(jī),并在虛擬機(jī)中安裝了容器運(yùn)行時(shí)。 綜述 Kubernetes集群的組件眾多,要部署一套符合生產(chǎn)環(huán)境的集群不是一件容易的事。好在隨著社區(qū)的快速發(fā)展,特別是在它成為事實(shí)上的容器編排標(biāo)準(zhǔn)以后,基本所有的主流云平臺(tái)都...

    Lionad-Morotar 評(píng)論0 收藏0
  • Kubernetes的幾種主流部署方式01-minikube部署

    摘要:代表的解決方案為。雖然官網(wǎng)列出的部署方式很多,但也不用被這么多種部署方式搞糊涂了。雖然只是一條命令,但其實(shí)執(zhí)行了很多步驟命令執(zhí)行后輸出如下可以看到,主要做了這些事創(chuàng)建了名為的虛擬機(jī),并在虛擬機(jī)中安裝了容器運(yùn)行時(shí)。 綜述 Kubernetes集群的組件眾多,要部署一套符合生產(chǎn)環(huán)境的集群不是一件容易的事。好在隨著社區(qū)的快速發(fā)展,特別是在它成為事實(shí)上的容器編排標(biāo)準(zhǔn)以后,基本所有的主流云平臺(tái)都...

    浠ラ箍 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<