kubernetes學習一(安裝以及創建第一個rc與pod)


准備工作

首先准備Kubernets的安裝,這里我使用的是centos7
Kubernetes v1.5.2
Docker version 1.12.6, build 85d7426/1.12.6


安裝

yum install docker etcd kubernetes -y

修改配置文件

vim /etc/kubernetes/apiserver
將KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRange

r,SecurityContextDeny,ServiceAccount,ResourceQuota"中的ServiceAccount

不然后期創建rc與pod的時候會出現pod無法創建但是rc能創建


啟動服務

systemctl start etcd
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy
systemctl start docker

創建rc

創建rc文件,語法為yaml格式,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"

yaml定義文件中kind屬性,用來表明此資源對象的類型,比如這里的值為“ReplicationController”表示這是一個RC;
spec一節中是RC的相關屬性定義,比如spec.selecror是RC的Pod標簽選擇器,即監控和管理擁有這些標簽的pod實,
確保當前集群上始終有且僅有replicas個pod實例在運行,這里我們設置為1表示只能運行一個mysql pod實例。當集群
中運行的Pod的數量小於replicas時,RC會根據spec.template.metadata.labels指定了該Pod標簽,需要特別注意的是:
這里的labels必須匹配之前的spec.selector,否則此RC每次創建了一個無法匹配label的pod,就會不停的嘗試新的pod,
最終陷入循環。


執行Rc

kubectl create -f mysql-rc.yaml

查看
kubectl get rc
kubectl get pods


錯誤整理

在創建rc與pod時出現遲遲無發運行pods狀態如下:

可以使用kubectl describe pods Pod_Name來查看是什么原因。
其中我遇到錯誤為:

需要安裝rhsmyum install *rhsm*
刪除rc與pod kubectl delete -f XXX.yaml 或者kubectl delete pods pod_name
詳細使用方法查看 kubectl delete --help
之后便可已正常運行。

需要注意的是在拉取鏡像的時候因為GWF所已會有點慢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM