09.18 004 在kubernetes集群中創建mysql的RC和service資源併成功啟動

004 在kubernetes集群中創建mysql的RC和service資源併成功啟動

為mysql服務創建一個ReplicationController資源類型的定義文件

[ty@test yaml]$ cat mysql-rc.yaml 
apiVersion: v1 #需要使用的api的版本
kind: ReplicationController #指定的資源類型
metadata: #開始此資源的元數據
name: mysql #此資源的名稱
spec: #此資源類型的規格配置
replicas: 1 #此資源pod副本數
selector: #開始指定此資源的標籤選擇器
app: mysql #指定標籤選擇器key: values對, 符合目標的pod一定擁有此標籤
template: #開始指定此資源需要生成的pod的模板
metadata: #開始指定pod的元數據
labels: #開始指定pod的標籤
app: mysql #指定pod標籤的key:values對,要和上邊資源rc的標籤選擇器相同
spec: #開始指定pod的規格配置
containers: #開始指定pod包含的容器的規格
- name: mysql #指定容器的名字
image: mysql #指定容器使用的鏡像名
ports: #開始指定容器使用的端口
- containerPort: 3306 #指定使用的容器端口
env: #開始配置所需的環境變量
- name: MYSQL_ROOT_PASSWORD #變量的名字 k:v
value: "123456" #變量的值 k:v
004 在kubernetes集群中創建mysql的RC和service資源併成功啟動

創建好資源定義文件後將其發佈到kubernetes集群中

[ty@test yaml]$ kubectl apply -f mysql-rc.yaml 
replicationcontroller/mysql created

創建之後需要等待一會兒,pod才能正常創建成功並正常運行,這是因為需要從鏡像倉庫下載所需鏡像文件,而且集群需要確定調庫到哪個節點上,這個時間取決於當前網絡狀況和集群的性能。創建的過程中pod顯示為“pending”狀態,完成後顯示“running”。

執行“kubectl get pod -o wide”可以看到此pod運行在test1.ty.com節點上。

004 在kubernetes集群中創建mysql的RC和service資源併成功啟動

在此節點上查看容器狀態,可以看到有一個名為“mysql”的容器和“pause”的容器。第二個容器被稱之為Pause的容器,其他容器則為業務容器,這些業務容器共享Pause容器的網絡棧和Volume掛載卷,因此他們之間通信和數據交換更為高效,在設計時我們可以充分利用這一特性將一組密切相關的服務進程放入同一個Pod中。同一個Pod裡的容器之間僅需通過localhost就能互相通信。

004 在kubernetes集群中創建mysql的RC和service資源併成功啟動

創建一個與rc資源相關聯的Server資源定義文件

[ty@test yaml]$ cat mysql-svc.yaml
apiVersion: v1
kind: Service #表明資源類型為service
metadata:
name: mysql
spec:
ports:
- port: 3306 #Service提供的服務的端口
selector:
app: mysql #與service對應的pod擁有此標籤。
004 在kubernetes集群中創建mysql的RC和service資源併成功啟動

創建Service

[ty@test yaml]$ kubectl apply -f mysql-svc.yaml 
service/mysql created

顯示創建的service

可以看到mysql服務被分配到了一個10.105.47.163的集群IP上。現在集群中其它pod就可以通過這個Server的名稱就可以獲取其對應的IP和port3306就可以訪問到這個服務,發起tcp/ip請求。

004 在kubernetes集群中創建mysql的RC和service資源併成功啟動


分享到:


相關文章: