目錄
一、實驗
1.Python項目發布到K8S集群
一、實驗
1.Python項目發布到K8S集群
(1)獲取應用程序代碼
#把hello-python.tar.gz壓縮包上傳到k8s控制節點master1的root下,手動解壓
tar zxvf hello-python.tar.gz
(2)切換目錄
#requirements.txt文件包含main.py所需的包列表,pip將使用它來安裝Flask庫。
cd /root/hello-python/app
(3)創建dockerfile
[root@master1 app]# cat dockerfile
FROM python:3.7
RUN mkdir /app
WORKDIR /app
ADD . /app/
RUN /usr/local/bin/python -m pip install --upgrade pip
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python","/app/main.py"]
(4)構建鏡像
#需要先拉取python鏡像
docker pull python:3.7docker build -t hello-python:v1 .
(5)?把鏡像做成離線包
docker save -o hello.tar.gz hello-python:v1
(6)?查看鏡像大小
du -sh hello.tar.gz
(7)傳送到node1節點
scp hello.tar.gz node1:/root
(8)在node1節點解壓鏡像
docker load -i hello.tar.gz
(9)創建deployment的yaml文件
[root@master1 app]# cat deployment.yaml
apiVersion: v1
kind: Service
metadata:name: hello-python-service
spec:selector:app: hello-pythonports:- protocol: "TCP"port: 6000targetPort: 5000type: NodePort---
apiVersion: apps/v1
kind: Deployment
metadata:name: hello-python
spec:selector:matchLabels:app: hello-pythonreplicas: 1template:metadata:labels:app: hello-pythonspec:containers:- name: hello-pythonimage: hello-python:v1imagePullPolicy: IfNotPresentports:- containerPort: 5000
(10)更新yaml文件
kubectl apply -f deployment.yaml
(11)訪問python項目
kubectl get svc
瀏覽器訪問192.168.204.180:31552即可: