1. カスタム名前空間 dev を作成します。
kubectl create ns dev
2. dev 名前空間の yaml ファイルを介してデプロイメントをデプロイします。デプロイメントの内容は次のとおりです:
a. nginx ミラーを使用します。
b. コピーの数は 3 です。
c. アップグレード戦略はローリング アップグレードです。
d. readiness プローブを構成します。
e. データ永続化メソッドを HostPath に設定します。
nginxpod.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: pc-deployment
namespace: dev
labels:
app: nginx
spec:
replicas: 3
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.19.1
imagePullPolicy: IfNotPresent
ports:
- name: http
protocol: TCP
containerPort: 80
livenessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 45
periodSeconds: 15
readinessProbe:
failureThreshold: 3
tcpSocket:
port: 80
initialDelaySeconds: 20
periodSeconds: 3
successThreshold: 1
timeoutSeconds: 2
resources:
limits:
cpu: "1.0"
memory: 512Mi
requests:
cpu: "0.5"
memory: 128Mi
volumeMounts:
- mountPath: /usr/share/nginx/html
name: html
volumes:
- name: html
hostPath:
path: /html
type: DirectoryOrCreate
kubectl create -f nginxpod.yaml
kubectl get pod -A
f. nginx ホームページを変更します。
3. 外部アクセスを通じて k8s ホームページにアクセスします。
kubectl expose deploy pc-deployment --name=svc-nginx --type=NodePort --port=80 --target-port=80 -n dev
kubectl get svc svc-nginx -n dev -o wide
4. 作成した展開を展開および縮小し、再起動し、イメージのバージョンを変更し、バージョンをロールバックします。
拡大:
kubectl scale deploy pc-deployment --replicas=5 -n dev
縮む:
kubectl edit deploy pc-deployment -n dev
kubectl get deploy pc-deployment -n dev
再起動:
kubectl rollout restart deployment pc-deployment -n dev
イメージのバージョンを変更します。
kubectl set image deployment pc-deployment nginx=nginx:1.17.2 -n dev
バージョンのロールバック:
kubectl rollout undo deployment pc-deployment --to-revision=1 -n dev