前言
今天在 K8S 集群中跑一個容器化應用,
更新歷史
- 20200518 - 初稿 - 左程立
- 原文地址 - https://blog.zuolinux.com/2020/05/18/first-app-on-k8s.html
如何發布容器到 K8S 中
容器來源
使用 nginx 的官方容器鏡像,
發布容器的兩種方式
鏡像有了,我們如何將其提交給 K8S 運行呢,有兩種方式:
- 命令列方式(不推薦),
- 組態檔方式(推薦),
這里使用官方推薦的第二種方式,即通過將容器的各種資訊寫入組態檔提交給 K8S,
定義容器組態檔
創建一個 nginx.yaml 檔案
[root@master01 ~]# cat nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
hostAliases:
- ip: "10.20.20.20"
hostnames:
- "test1.com"
- "test2.com"
部署容器到 K8S 中
[root@master01 ~]# kubectl apply -f nginx.yaml
pod/nginx created
查看容器的運行情況
[root@master01 ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 0 93s 192.10.205.195 work01 <none> <none>
查看容器的具體資訊
所有重要操作,都會被記錄在kubectl describe 指令回傳的 Events 里,用于 DEBUG
[root@master01 ~]# kubectl describe pod nginx
Name: nginx
Namespace: default
Priority: 0
Node: work03/192.168.10.17
IP: 192.10.137.130
.....省略......
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled <unknown> default-scheduler Successfully assigned default/nginx to work03
Normal Pulled 74s kubelet, work03 Container image "nginx:1.7.9" already present on machine
Normal Created 73s kubelet, work03 Created container nginx
Normal Started 73s kubelet, work03 Started container nginx
升級容器中nginx版本
# 修改 nginx.yaml
image: nginx:1.9.0
# 提交給 K8S
# kubectl apply -f nginx.yaml
洗掉該容器應用
[root@master01 ~]# kubectl delete -f nginx.yaml
pod "nginx" deleted
[root@master01 ~]# kubectl get pods
No resources found in default namespace.
nginx.yaml 引數簡介
引數定義,分為 metadata 和 Spec 兩部分:
metadata 存放元資料
Spec 存放這個物件獨有的定義,用于描述它要表達的功能
kind: Pod
指明是一個 Pod 型別的API物件,該物件操作管理另一種 API 物件即Pod
metadata
API 物件的標識,即這個 Pod 的標識
spec.containers
表明是一個容器相關引數
spec.hostAliases
給容器的 /etc/hosts 檔案中增加決議
查看 Pod 幫助檔案
[root@master01 ~]# kubectl explain Pod
結束語
今天發布了一個容器應用到K8S中,
我們可以看到,容器確保了"系統環境"在開發/測驗/生產中的一致性,YAML 組態檔可以確保"配置引數"的一致性,
但好像有點暈,不是發布容器嗎,那么 Pod 又是什么?
Pod 把容器進行了包裝,K8S 可以操作的最小單元是 Pod,Pod 里包含了容器,
聯系我
微信公眾號:zuolinux_com

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/180091.html
標籤:其他
