kubeadm方式安裝kubernetes

系統:  Ubuntu 18.04.2 LTSnode

內存:  8Gnginx

機器:git

屬性   IP         Hostname      ssh      
 Master          192.168.91.48     blackray-pc         
 node1  192.168.91.221     node1-VirtualBox  node1@192.168.91.221  
 node2  192.168.91.222 node1-VirtualBox  node2@192.168.91.222

 

 

1  安裝前準備
    1.1 關閉系統swap分區(須要重啓系統)
            vi /etc/fstab,註釋swap行的UUID信息   github

    
    1.2 /etc/apt/source.list中配置阿里雲k8s源
            # kubeadm及kubernetes組件安裝源
            deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial maindocker

        
    1.3 安裝kubeadm kubectl kubeletapi

     apt-get update
            apt-get install kubeadm kubelet kubectl -y

2 下載k8s須要的鏡像,因爲k8s.gcr.io國內訪問不了,能夠從docker.io上下載相同版本鏡像,再從新打tag爲源版本(能夠先執行第三部,從報錯信息中查看須要下載的鏡像版本)
    2.1
        docker pull docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.4
        docker pull docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.4
        docker pull docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.4
        docker pull docker.io/mirrorgooglecontainers/kube-proxy:v1.13.4
        docker pull docker.io/mirrorgooglecontainers/pause:3.1
        docker pull docker.io/mirrorgooglecontainers/etcd:3.2.24
        docker pull docker.io/coredns/coredns:1.2.6
    2.2 將鏡像從新打tag回k8s.gcr.io
        docker tag docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.4 k8s.gcr.io/kube-apiserver:v1.13.4
        docker tag docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.4 k8s.gcr.io/kube-controller-manager:v1.13.4
        docker tag docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.4 k8s.gcr.io/kube-scheduler:v1.13.4
        docker tag docker.io/mirrorgooglecontainers/kube-proxy:v1.13.4 k8s.gcr.io/kube-proxy:v1.13.4
        docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
        docker tag docker.io/mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24
        docker tag docker.io/coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6網絡

  



3 初始化Master 使用flannel網絡方案(執行第二步鏡像的版本號從這一步的提示信息中獲取)
   3.1 kubeadm init --apiserver-advertise-address 192.168.91.48 --pod-network-cidr=10.244.0.0/16
    執行完畢,在提示信息中提示工做節點如何加入集羣的命令,如:
    kubeadm join 192.168.91.48:6443 --token kt3n05.2kckopgl445znxir --discovery-token-ca-cert-hash sha256:34bf00baef51f48991e3eb6a9f898d2c93daf53d272d886c2b7b8417eb567f65app

 3.2 執行命令ssh

  sudo cp /etc/kubernetes/admin.conf $HOME/
  sudo chown $(id -u):$(id -g) $HOME/admin.conf
  export KUBECONFIG=$HOME/admin.conf (臨時生效)測試

  在/etc/profile文件中加入export KUBECONFIG=$HOME/admin.conf 


    3.3 安裝flannel網絡: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
    token過時(24小時過時)後可從新生成token:
        kubeadm token create --ttl 0 (--ttl 0表明永不過時)
    查看token:  kubeadm token list
    獲取ca證書sha256編碼hash值
        openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
        回顯值:34bf00baef51f48991e3eb6a9f898d2c93daf53d272d886c2b7b8417eb567f65
    新的加入命令
        kubeadm join 192.168.91.48:6443 --token enzyy3.3v8g89erxgs33rzt --discovery-token-ca-cert-hash sha256:34bf00baef51f48991e3eb6a9f898d2c93daf53d272d886c2b7b8417eb567f65

4 node節點安裝如下鏡像(被牆,須要手動安裝)
        k8s.gcr.io/kube-proxy    v1.13.4             fadcc5d2b066        2 weeks ago         80.3MB
        k8s.gcr.io/pause         3.1                 da86e6ba6ca1        15 months ago       742kB
    鏡像安裝與第二步一致
    
5 工做幾點加入集羣,執行命令
    kubeadm join 192.168.91.48:6443 --token kt3n05.2kckopgl445znxir --discovery-token-ca-cert-hash sha256:34bf00baef51f48991e3eb6a9f898d2c93daf53d272d886c2b7b8417eb567f65
    
6 在Master節點上查看節點狀態
    kubectl get node
   

  STATUS狀態值爲READY時表示工做節點加入k8s集羣成功並可正常工做

7 編寫yaml文件,測試服務是否可正常調度(Master節點上)

nginx-service.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx
  name: nginx
spec:
  ports:
  - port: 80 #服務暴露的端口
    protocol: TCP
    targetPort: 80 #容器暴露的端口
    nodePort: 30008 #節點暴露的端口
  selector:
    app: nginx
  type: NodePort
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

在yaml文件所在的工做目錄執行 kubectl apply -f nginx-service.yaml

訪問http://192.168.91.221:30008 或 http://192.168.91.222:30008出現nginx首頁即表示正常運行

相關文章
相關標籤/搜索