国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

kubernetes1.9.2基于kubeadm高可用安裝教程,包含離線安裝包,支持簡單快速安裝,含

explorer_ddf / 770人閱讀

摘要:使用安裝安全高可用集群安裝包地址如非高可用安裝請忽略此教程,直接看產品頁的三步安裝。

使用kubeadm安裝安全高可用kubernetes集群

安裝包地址 如非高可用安裝請忽略此教程,直接看產品頁的三步安裝。

單個master流程: 單master視頻教程

解壓后在master 上 cd shell && sh init.sh ,然后sh master.sh(注意因為腳本用的相對路徑所以不再當前目錄會找不到文件)

在node上 cd shell && sh init.sh 。然后在node上執行master輸出的join命令即可

高可用如下
提前準備

假設構建一個3master+2node的k8s集群,需要5臺節點共同的條件如下:

yum install -y docker是1.12.6版本需要改cg
17.06安裝教程:

#0.刪除老舊的
$ yum remove -y docker*  #如果默認之前yum安裝的1.12版本,可以這樣刪沒裝可以跳過此步
#1.安裝需要的包
$ yum install -y yum-utils 
  device-mapper-persistent-data 
  lvm2
  
#2.添加源,不然默認的找不到
$ yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo
    
#3.根據實際查找當前版本 (可選)
$ yum list docker-ce --showduplicates | sort -r
#4.如果確定了版本,直接安裝,如果要裝17。03直接修改下面數字即可
$ yum install  docker-ce-17.06.1.ce  # 主意版本填寫包名的格式.
#5.開啟docker服務,和開機啟動
$ systemctl start docker && systemctl enable docker

建議二進制方法提前部署好docker-compose,步驟參考后文

建議永久關閉selinux和swap以免后續問題

建議停止并關閉firewalld/iptables等防火墻

新的節點啟動后記得改網絡名 hostnamectl set-hostname masterX

節點之間要能互通內網環境穩定

安裝中出了問題要看日志journalctl -n 10 ,運行中的日志查看tail -f 10 /var/log/messages

系統架構圖
          kubectl dashboard
                 |
                 V 
     +------------------------+ join
     | LB  10.1.245.94        | <--- Nodes
     +------------------------+
     |                                                   
     |--master1 manager1 schedule1   10.1.245.93                                                
     |--master2 manager2 schedule2   10.1.245.95    =============>  etcd cluster  http://10.1.245.93:2379,http://10.1.245.94:2379,http://10.1.245.95:2379
     |--master3 manager3 schedule3   10.1.245.94                                              
安裝包介紹

解壓完之后看到如下目錄:

├── bin          所需要的k8s相關的bin文件
│   ├── kubeadm
│   ├── kubectl
│   └── kubelet
├── image        依賴的所有鏡像包
│   └── images.tar
├── out          所有的配置文件
│   ├── dashboard  dashboard相關配置
│   │   ├── dashboard-admin.yaml
│   │   └── kubernetes-dashboard.yaml
│   ├── etcd  etcd相關配置
│   │   ├── etcd-docker-compose-0.yml
│   │   ├── etcd-docker-compose-1.yml
│   │   └── etcd-docker-compose-2.yml
│   ├── haproxy  haproxy相關配置
│   │   └── haproxy.cfg
│   ├── heapster   heapster相關yaml配置
│   │   ├── influxdb
│   │   │   ├── grafana.yaml
│   │   │   ├── heapster.yaml
│   │   │   └── influxdb.yaml
│   │   └── rbac
│   │       └── heapster-rbac.yaml
│   ├── kube    k8s自身配置
│   │   ├── 10-kubeadm.conf
│   │   ├── config    kubeadm配置
│   │   └── kubelet.service
│   ├── kubeinit.json  忽略
│   └── net  網絡相關配置
│       ├── calico.yaml
│       └── calicoctl.yaml
└── shell    初始化腳本
    ├── init.sh   初始化節點,安裝bin文件,systemd配置等
    └── master.sh  執行kubeadm init和其它組件
初始化節點

因為解壓后包,然后scp -r xxx root@ip:/root 的方式分發解壓后的包到其他節點

集群中所有節點都需要執行cd shell && sh init.sh (如果只跑單個master那么還需要執行 sh master.sh ,多master勿跑 )

有以下需要注意的事項:

修改init.sh腳本在后面添加,如果二進制程序沒可執行權限chmod +x /usr/bin/kube*

cgroups驅動需要選擇docker17.0x版本,就不需要去調整了,如果是1.1x版本的docker需要手動修改kubelet的啟動文件里面的cgroups配置為systemd (修改位置/etc/systemd/system/kubelet.service.d) 與 docker info|grep Cg一致

提前修改默認的init 或者手動執行sysctl -w net.ipv4.ip_forward=1 不然第七行報錯

執行完成后通過命令查看kubectl get pod -n kube-system ,狀態全為Running正常

起動etcd集群

etcd集群安裝使用docker-compose方式部署

A.使用docker-compose啟動,如果沒裝:

$ pip install docker-compose

B.使用二進制包啟動docker-compose(離線可選)

$ wget https://github.com/docker/compose/releases/download/1.18.0/docker-compose-Linux-x86_64  #官方推薦是用curl,不建議
$ mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose && chmod a+x /usr/local/bin/docker-compose  #也有寫+x的.
#這樣就完成了,測試
$ docker-compose version  #下面是正常輸出
docker-compose version 1.18.0, build 8dd22a9
docker-py version: 2.6.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

在out/etcd目錄下有相關模板etcd-docker-compose-x.yam,啟動多個節點時修改成自己的ip地址 其它兩個節點照抄,修改ip即可, image那行 應改為 gcr.io/google_containers/etcd-amd64:3.1.11 ,實際就是版本號改一下即可。

#需要修改所有含有ip的地方,下面的9,10,11,12行改為當前節點ip,15行三個ip順序改為etcd集群部署的三臺節點ip
version: "2.1"
services:
    etcd0:
        container_name: etcd_infra0
        image: gcr.io/google_containers/etcd-amd64:3.0.17  #這里最后改為3.1.11
        command: |
                etcd --name infra0
                --initial-advertisie-peer-urls http://10.230.204.160:2380
                --listen-peer-urls http://10.230.204.160:2380
                --listen-client-urls http://10.230.204.160:2379,http://127.0.0.1:2379
                --advertise-client-urls http://10.230.204.160:2379
                --data-dir /etcd-data.etcd
                --initial-cluster-token etcd-cluster-1
                --initial-cluster infra0=http://10.230.204.160:2380,infra1=http://10.230.204.165:2380,infra2=http://10.230.204.151:2380
                --initial-cluster-state new
        restart: always
        volumes:
           - /data/etcd-data.etcd:/etcd-data.etcd
        network_mode: "host"

三個節點分別啟動:

$ docker-compose -f out/etcd/etcd-docker-compose-x.yml up -d  
#正常輸出Creating etcd_infrax ... done  x為每個etcd編號

檢查是不是安裝成功:

$ docker exec etcd_infra0 etcdctl member list  #master1上可能運行報錯容易提示容器正在重啟。。原因暫時未知,其他master上可以
#成功應該是類似顯示
5ded6dd284b89d31: name=infra1 peerURLs=http://10.230.204.153:2380 clientURLs=http://10.230.204.153:2379 isLeader=true
6d4b5eee32c1497a: name=infra0 peerURLs=http://10.230.204.150:2380 clientURLs=http://10.230.204.150:2379 isLeader=false
729d9cd56debb1a1: name=infra2 peerURLs=http://10.230.204.154:2380 clientURLs=http://10.230.204.154:2379 isLeader=false

#如果出現有peerURL不顯示說明沒有成功,嘗試remove重新創建
$ docker-compose -f  out/etcd/etcd-docker-compose-x.yml down -v
kubeadm配置

修改配置 out/kube/config 文件

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
apiServerCertSANs:    #此處填所有的masterip和lbip和其它你可能需要通過它訪問apiserver的地址和域名或者主機名等,如阿里fip,證書中會允許這些ip
- 172.31.244.231
- 172.31.244.232
- 172.31.244.233
- 172.31.244.234
- master1
- master2
- master3
- node1
- 47.75.1.72

etcd:
  endpoints:   #這里填之前安裝的etcd集群地址列表,修改IP地址
  - http://172.31.244.232:2379
  - http://172.31.244.233:2379
  - http://172.31.244.234:2379

apiServerExtraArgs:
  endpoint-reconciler-type: lease

networking:
  podSubnet: 192.168.0.0/16  #不用改
kubernetesVersion: v1.9.2  #不用改
featureGates:  #不用改
   CoreDNS: true

然后執行:

$ kubeadm init --config out/kube/config

把成功后的kubeadm join命令存在文件里,那東西不能丟了

啟動calico等

mkdir ~/.kube && cp /etc/kubernetes/admin.conf ~/.kube/config (如果已經存在請校驗一下是否相同,不確定建議刪掉重新cp過去)

修改calico配置,把etcd地址換成你安裝好的集群地址:
out/net/calico.yaml:

kind: ConfigMap
apiVersion: v1
metadata:
  name: calico-config
  namespace: kube-system
data:
  # The location of your etcd cluster.  This uses the Service clusterIP
  # defined below.
  etcd_endpoints: "http://10.96.232.136:6666" # 這里改成etcd集群地址如 "http://172.31.244.232:2379,http://172.31.244.233:2379,http://172.31.244.234:2379"
$ kubectl apply -f out/net/calico.yaml
$ kubectl apply -f out/heapster/influxdb
$ kubectl apply -f out/heapster/rbac
$ kubectl apply -f out/dashboard
#上面命令可整合為
$ kubectl apply -f out/net/calico.yaml -f out/heapster/influxdb -f out/heapster/rbac -f out/dashboard

然后訪問https://master1IP:32000端口即可,在chrome下無法進入提示證書有誤,更換firefox可以,提示說證書日期不對(待修復)

啟動多個master

第一個master我們稱之為master0 (假設其他master已經init.sh過),現在把第一個master的/etc/kubernetes/pki目錄拷貝到別的master節點上

$ mkdir -p /etc/kubernetes
$ scp -r /etc/kubernetes/pki root@10.1.245.93:/etc/kubernetes/pki

刪除pki目錄下的apiserver.crt 和 apiserver.key文件rm -rf apiserver.crt apiserver.key,注意如果不刪除會只能看到一個master,是不正常的。

同樣使用master0上的out/kube/config文件,復制內容,拷貝到master1上,scp out/kube/config root@10.230.204.151:/root/ 執行kubeadm init --config ~/config

master2節點同master1

啟動loadbalance

我比較推薦使用四層代理 HAproxy配置out/haproxy目錄:

vi out/haproxy/haproxy.cfg

global
  daemon
  log 127.0.0.1 local0
  log 127.0.0.1 local1 notice
  maxconn 4096

defaults
  log               global
  retries           3
  maxconn           2000
  timeout connect   5s
  timeout client    50s
  timeout server    50s

frontend k8s
  bind *:6444
  mode tcp
  default_backend k8s-backend

backend k8s-backend
  balance roundrobin
  mode tcp
  #下面三個ip替換成三個你自己master的地址
  server k8s-1 10.1.245.93:6443 check 
  server k8s-1 10.1.245.94:6443 check
  server k8s-2 10.1.245.95:6443 check

mkdir /etc/haproxy 然后把這個文件拷貝在cp out/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg

$ docker run --net=host -v /etc/haproxy:/usr/local/etc/haproxy --name ha -d haproxy:1.7
修改kubeproxy配置
$ kubectl -n kube-system edit configmap kube-proxy

找到master地址,修改成LB地址,6444端口 (這里關鍵在于怎么知道LB的地址到底是哪一個呀?上面配置之后三個masterIP 輪詢并不知道哪個是LB地址)

#找到文件的這一塊,第七行server 有個ip地址
apiVersion: v1
    kind: Config
    clusters:
    - cluster:
        certificate-authority: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        server: https://10.230.204.151:6443 #修改為 LoadBalanceIP:6444
      name: default
    contexts:
    - context:
        cluster: default
        namespace: default
        user: default
      name: default
    current-context: default
    users:
    - name: default
      user:
        tokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
join node節點

還是在node節點執行第一個master輸出的命令

$ kubeadm join --token  10.1.245.94:6443 --discovery-token-ca-cert-hash sha256:
修改node節點kubelet配置

vi /etc/kubernetes/kubelet.conf 同樣把地址修改成LB地址,如:10.1.245.94:6444 ,修改如下第五行(展示的例子已經修改過)

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: xxxxxx #此處省略幾百字符
    server: https://10.230.204.160:6444 #修改這里為LB:6444,原本是另外的ip:6443
  name: default-cluster
contexts:
- context:
    cluster: default-cluster
    namespace: default
    user: default-auth
  name: default-context
current-context: default-context
kubectl配置

修改~/.kube/config文件,server的ip改成LB的ip 10.1.245.94:6444

或者通過命令修改:

$ kubectl config set-cluster kubernetes --server=https://47.52.227.242:6444 --kubeconfig=$HOME/.kube/config
啟動多DNS副本
$ kubectl edit deploy coredns -n kube-system

replicas: 3

[root@master1 ~]$ kubectl get pod -n kube-system -o wide|grep core
coredns-65dcdb4cf-4j5s8                  1/1       Running   0          39m       192.168.137.65    master1
coredns-65dcdb4cf-ngx4h                  1/1       Running   0          38s       192.168.180.1     master2
coredns-65dcdb4cf-qbsr6                  1/1       Running   0          38s       192.168.166.132   node1

這樣,啟動了三個dns

驗證與測試
$ kubectl run test --image busybox sleep 10000
$ kubectl exec your-busybox-pod-name nslookup kubernetes

殺非LB的master,多次測試看創建pod與dns是否正常,還可以telnet 10.96.0.1 443 去驗證clusterip是否正常

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28028.html

相關文章

  • kubernetes1.9.2基于kubeadm可用安裝教程離線安裝支持簡單快速安裝,

    摘要:使用安裝安全高可用集群安裝包地址如非高可用安裝請忽略此教程,直接看產品頁的三步安裝。 使用kubeadm安裝安全高可用kubernetes集群 安裝包地址 如非高可用安裝請忽略此教程,直接看產品頁的三步安裝。 單個master流程: 單master視頻教程 解壓后在master 上 cd shell && sh init.sh ,然后sh master.sh(注意因為腳本用的相...

    AlphaGooo 評論0 收藏0
  • kubernetes1.9.2基于kubeadm可用安裝教程離線安裝支持簡單快速安裝,

    摘要:使用安裝安全高可用集群安裝包地址如非高可用安裝請忽略此教程,直接看產品頁的三步安裝。 使用kubeadm安裝安全高可用kubernetes集群 安裝包地址 如非高可用安裝請忽略此教程,直接看產品頁的三步安裝。 單個master流程: 單master視頻教程 解壓后在master 上 cd shell && sh init.sh ,然后sh master.sh(注意因為腳本用的相...

    jimhs 評論0 收藏0
  • 簡單的kubernetes HA安裝方式-sealos詳解

    摘要:集群三步安裝概述本文教你如何用一條命令構建高可用集群且不依賴和,也無需。通過內核對進行負載均衡,并且帶健康檢測。當然你也可以把用于一些其它場景,比如代理自己的服務等 kubernetes集群三步安裝 概述 本文教你如何用一條命令構建k8s高可用集群且不依賴haproxy和keepalived,也無需ansible。通過內核ipvs對apiserver進行負載均衡,并且帶apiserve...

    spacewander 評論0 收藏0
  • kubernetes RBAC實戰 kubernetes 用戶角色訪問控制,dashboard訪問,

    摘要:這個用戶或者組用于后面的角色綁定使用生成的證書就會生成下面的文件校驗證書生成文件已經生成了,我們可以直接利用這個文件,省的自己再去配置集群參數設置客戶端認證參數設置上下文參數設置莫認上下文以上執行一個步驟就可以看一下的變化。 kubernetes RBAC實戰 環境準備 先用kubeadm安裝好kubernetes集群,kubernetes1.8.2安裝包 | kubernete...

    sherlock221 評論0 收藏0

發表評論

0條評論

explorer_ddf

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<