參考部落格
登入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有效
- 建立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
複製程式碼