1. 程式人生 > >如何在VMware vSphere上安裝Kubernetes來執行Docker

如何在VMware vSphere上安裝Kubernetes來執行Docker

安裝Google Kubernetes不需要VMware vSphere或任何其他虛擬機器管理程式。但是,在VM上執行此操作非常方便,因此強烈建議特別針對開發和測試環境。

無論是VM還是物理機,都必須使用Linux作業系統。和往常一樣,我選擇了CentOS 7,它是RHEL的一個分支。安裝CentOS後,其餘的很容易。如果您已經擁有CentOS模板,那麼部署新模板應該非常快。

為了獲得更好的使用者體驗,您需要擁有乾淨的CentoS。當我嘗試安裝時,我使用了已經安裝了Nginx的CentOS,這給了我一些麻煩。最後,我不得不從頭開始。 以下是我在學習Docker Containers - 使用Kubernetes,Flannel,Cockpit和Atomic(強烈推薦)構建和部署這本書時用來安裝Kubernetes的命令列。因為它僅用於測試,所以我只是將所有內容安裝在一個VM中。如果是真實系統,您希望擁有主節點和不同節點。

安裝Master和Client:

首先,將CentOS帶到最新狀態並重啟機器。

# yum update
# reboot

然後,使用yum命令列開始安裝mater節點。

# yum install -y kubernetes etcd
# systemctl stop firewalld
# systemctl disable firewalld
# vi /etc/kubernetes/apiserver
# systemctl restart etcd kube-apiserver kube-controller-manager kube-scheduler
# systemctl enable etcd kube-apiserver kube-controller-manager kube-scheduler

安裝客戶端:

# systemctl restart kube-proxy kubelet docker
# systemctl enable kube-proxy kubelet docker

驗證它是否已成功安裝,請嘗試以下命令列:

[[email protected] ~]# kubectl get node
NAME        STATUS    AGE
127.0.0.1   Ready     5h

建立新的 Cluster/Pod

Kubernetes使用json檔案以真實的“軟體定義”方式描述POD藍圖。

# vi web-db.json
# kubectl create -f web-db.json

它有兩個容器:一個用於Web伺服器,另一個用於DB。

apiVersion: v1
kind: Pod
metadata:
  name: web-db-pod
  labels:
    app: web-db-pod
spec:
  containers:
  - name: mywebdock
    image: "cricket/webdock"
    ports:
    - containerPort: 80
      hostPort: 80
  - name: mydbdock
    image: "cricket/dbdock"
    ports:
    - containerPort: 3306
      hostPort: 3306

The deployment takes a few minutes to finish. Along the way, you can use the docker ps command to see what containers are there already:

# docker ps

部署需要幾分鐘才能完成。 在此過程中,您可以使用docker ps命令檢視已存在的容器

# curl localhost:80
# curl localhost:80/cgi-bin/action

在我的情況下,第二個命令失敗,500內部服務錯誤。 為了找出原因,我登入容器以獲取更多資訊。 使用以下命令列實際上非常簡單。 請注意,docker attach命令是不夠的,因為現有容器沒有執行任何shell。

# docker exec -it 9392c4458609 bash

進入容器後,您可以看到該檔案

# vi /var/www/cgi-bin/action
#!/usr/bin/python
# -*- coding: utf-8 -*-
import MySQLdb as mdb
import os
 
con = mdb.connect(os.getenv('DB_SERVICE_SERVICE_HOST','172.17.42.1'), 'dbuser1', 'redhat', 'gss')

請注意,我的環境中不存在IP地址172.17.42.1。 只需將其更改為127.0.0.1並儲存即可。 然後在瀏覽器中嘗試URL將起作用 http://192.168.0.128/cgi-bin/action 注意:您的容器IP地址可能不同。