K8Sリソースオブジェクト、ロールバック、拡張、ボリュームの減少をアップグレード

まず、作成したリソース、道リソースのコマンド、実行するコマンドの後に行動を理解することを作成するための方法の一つは、名前の概要ポッド原点を経由してリソースを表示します。

我々はさらにreplicaSetポッドを介してコントローラを管理するために、リソースを作成するには、このコントローラの展開をコマンドを実行すると、以下の例を通じて分析した我々は、リソースを作成するコマンドを実行すると、K8Sは、それによってNAMEに(行っています)法則を発見?

展開を実行します

[root@master ~]# kubectl run test01 --image=nginx:latest --replicas=2
#运行一个nginx容器,指定副本数量为2个
[root@master ~]# kubectl get deployments.    #查看deployment控制器
NAME     READY   UP-TO-DATE   AVAILABLE   AGE
test01   2/2     2            2           48s
#可以看到deployment的name是我们指定的test01
[root@master ~]# kubectl get replicasets.   #然后查看replicasets这个控制器
#注:replicasets可以简写为“rs”
NAME                DESIRED   CURRENT   READY   AGE
test01-799bb6cd4d   2         2         2       119s
#可以看到replicasets的NAME就是在deployment的NAME后面追加了一串ID号
[root@master ~]# kubectl get pod      #查看pod的name
NAME                      READY   STATUS    RESTARTS   AGE
test01-799bb6cd4d-d88wd   1/1     Running   0          3m18s
test01-799bb6cd4d-x8wpm   1/1     Running   0          3m18s
#可以看到该pod的NAME就是在上面replicasets的后面又追加了一段ID

次のように同時に、あなたは、上記のステートメントを確認するために、各リソースオブジェクトの詳細情報を表示することができます。

[root@master ~]# kubectl describe deployments test01   #查看test01的详细信息

次のように戻り値は、次の情報は、新しいreplicasetsコントローラを生成している見ることができます。
K8Sリソースオブジェクト、ロールバック、拡張、ボリュームの減少をアップグレード

次のようにまあ、今、彼らのreplicasetsの詳細を参照してください。

K8Sリソースオブジェクト、ロールバック、拡張、ボリュームの減少をアップグレード

第二に、あなたが必要性をどのように行う、クライアントアクセスサービスを展開したい場合は?キーポイント?

あなたがサービスアクセスK8S展開にクライアントが必要な場合は、サービスリソースオブジェクトを作成する必要があり、その種類は、展開へのアクセスを得るためには、接触K8Sクラスタプロキシに、NodePort、ポートアクセスサービスこのリソースオブジェクトのマッピングを介してクライアントでなければなりませんサービス。

次のように実装プロセスは、次のとおりです。

[root@master ~]# kubectl run test02 --image=nginx:latest --port=80 --replicas=2
#基于nginx镜像创建deployment资源对象,映射容器的80端口到宿主机
[root@master ~]# kubectl expose deployment test02 --name=web01 --port=80 --type=NodePort
#创建一个service,将部署的test02的80端口映射出来
[root@master ~]# kubectl get svc web01    #查看创建的web01这个service的信息
NAME    TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
web01   NodePort   10.103.223.105   <none>        80:30230/TCP   86s
#可以看到将部署的服务端口映射到了宿主机的30230,

クライアントアクセス任意のK8Sクラスタノード30230ポート、ホームページにサービスにアクセスすることができ、次のように:
K8Sリソースオブジェクト、ロールバック、拡張、ボリュームの減少をアップグレード

第三に、レジストリ・ウェアハウスを構築します。ハローK8S:nginxのベースのカスタムイメージは、デフォルトのアクセス・インターフェースを変更します。これは、バージョン1.10です。そして、この画像に基づいて展開リソースオブジェクト、4つのレプリカの数を実行します。

#搭建registry仓库,并在群集中的节点指定到私有仓库
[root@master ~]# docker run -tid --name registry -p 5000:5000 --restart always registry:latest 
[root@master ~]# vim /usr/lib/systemd/system/docker.service    #编辑配置文件
ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.6:5000
#将修改后的配置文件发送到k8s群集中的其他节点
[root@master ~]# scp /usr/lib/systemd/system/docker.service root@node01:/usr/lib/systemd/system/
[root@master ~]# scp /usr/lib/systemd/system/docker.service root@node02:/usr/lib/systemd/system/
#所有更改了docker配置文件的节点都需要进行以下操作,以便更改生效
[root@master ~]# systemctl daemon-reload 
[root@master ~]# systemctl restart docker
#制作自定义镜像
[root@master ~]# vim Dockerfile
FROM nginx:latest
ADD index.html /usr/share/nginx/html/
[root@master ~]# echo "hello k8s" > index.html
[root@master ~]# docker build -t 192.168.20.6:5000/nginx:1.10 .
[root@master ~]# docker push 192.168.20.6:5000/nginx:1.10    #上传至私有仓库
#基于自定义镜像运行一个Deployment资源对象,replicas数量为4个。
[root@master ~]# kubectl run test03 --image=192.168.20.6:5000/nginx:1.10 --port=80 --replicas=4
[root@master ~]# kubectl get pod -o wide | grep test03 | awk '{print $6}'   #查看四个副本的IP地址
10.244.2.20
10.244.1.18
10.244.1.19
10.244.2.21
#接下来在k8s群集内部访问该上述四个任意IP,即可看到其提供的服务,如下:
#访问测试
[root@master ~]# curl 10.244.2.21 
hello k8s
[root@master ~]# curl 10.244.2.20
hello k8s

第四に、上記の展開リソースオブジェクト、更新、事業の拡大は、6つのカスタムミラーに更新レプリカの数は、まだミラーであり、かつ:.こんにちは更新へのデフォルトのアクセスインタフェースの変更。

#更新镜像并上传至私有仓库
[root@master ~]# echo "Hello update" > index.html 
[root@master ~]# docker build -t 192.168.20.6:5000/nginx:2.20 .
[root@master ~]# docker push 192.168.20.6:5000/nginx:2.20 
#更新资源对象,进行扩容
[root@master ~]# kubectl set image deployment test03 test03=192.168.20.6:5000/nginx:2.20 && kubectl scale deployment test03 --replicas=6
#查看pod的IP地址
[root@master ~]# kubectl get pod -o wide | grep test03 | awk '{print $6}'
10.244.2.24
10.244.2.22
10.244.1.21
10.244.2.23
10.244.1.22
10.244.1.20
#访问测试
[root@master ~]# curl 10.244.1.20
Hello update
[root@master ~]# curl 10.244.1.22
Hello update

第五に、このロールバック操作展開対象リソース、ビューコンテンツへのアクセスインタフェースと最終バージョンの複製の数を確認します。

[root@master ~]# kubectl rollout undo deployment test03   #执行回滚操作
[root@master ~]# kubectl get pod -o wide | grep test03 | wc -l
#查看replicas的数量还是6个
6

#访问测试
[root@master ~]# kubectl get pod -o wide | grep test03 | awk '{print $6}'
10.244.1.23
10.244.2.27
10.244.1.24
10.244.1.25
10.244.2.26
10.244.2.25
[root@master ~]# curl 10.244.2.25
hello k8s
[root@master ~]# curl 10.244.2.26
hello k8s

--------この記事の最後に、これまで、読んでくれてありがとう--------

おすすめ

転載: blog.51cto.com/14154700/2448427