kubernetes單機安裝

llla發表於2019-01-19

參考部落格

登入centos7 root:root, 解決網路不通問題資料

準備工作

首先準備Kubernets的安裝,這裡我使用的是virtualbox上安裝centos7, Kubernetes v1.5.2 Docker version 1.12.6

關閉CentOS自帶的防火牆服務:

檢視防火牆服務狀態

firewall-cmd --state

關閉

systemctl disable firewalld
systemctl stop firewalld

安裝

yum install docker etcd kubernetes -y

啟動服務

    systemctl enable 服務(設定開機自啟)
    
    systemctl start etcd
    systemctl start docker
    systemctl start kube-apiserver
    systemctl start kube-controller-manager
    systemctl start kube-scheduler
    systemctl start kubelet
    systemctl start kube-proxy
複製程式碼

檢查服務版本和啟動狀態

檢查版本

   ectdctl -v
   docker -v
   kubectl version
複製程式碼

檢視啟動狀態

    etcdctl member list
    docker ps
複製程式碼

建立mysql rc

vim mysql-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"
複製程式碼

執行建立 mysql Rc

kubectl create -f mysql-rc.yaml

檢視rc和pod

kubectl get rc
kubectl get pods

問題資料1資料2有效

  1. 建立rc與pod的時候會出現pod無法建立但是rc能建立
    解決辦法是編輯/etc/kubernetes/apiserver 去除 
    KUBE_ADMISSION_CONTROL 中的 SecurityContextDeny,ServiceAccount ,並重啟kube-apiserver.service服務
複製程式碼
# vim /etc/kubernetes/apiserver 
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota"
# systemctl restart kube-apiserver.service
複製程式碼
刪除RC,重新執行前面的步驟就可以看到Pods的生成了
複製程式碼
# kubectl delete -f filename.yam
replicationcontroller "rcname" deleted
# kubectl create -f filename.yam
replicationcontroller "rcname" created
# kubectl get pods
NAME          READY     STATUS              RESTARTS   AGE
mysql-sgvzt   0/1       ContainerCreating   0          3s
複製程式碼

2.pod狀態一直都是pending部落格

kubectl describe pod mypod檢視錯誤資訊

用kubectl describe檢視 pods的詳情,發現 registry.access.redhat.com/rhel7/pod-infrastructure:latest 映象報錯

問題是比較明顯的,就是沒有/etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt檔案,用ls -l檢視之後發現是一個軟連結,連結到/etc/rhsm/ca/redhat-uep.pem,但是這個檔案不存在,使用yum search rhsm命令:

  • 安裝python-rhsm-certificates包:
    # yum install python-rhsm-certificates -y
複製程式碼

這裡又出現問題了:

python-rhsm-certificates <= 1.20.3-1  (已安裝) subscription-manager-rhsm-certificates-1.20.11-1.el7.centos.x86_64 取代
複製程式碼

那麼怎麼辦呢,我們直接然後下載python-rhsm-certificates包:

    # wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
    
    # rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem
複製程式碼

再次使用使用docker pull 拉取映象

docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest
複製程式碼

kubernetes單機安裝

相關文章