OpenStack上に展開するContainer as a Service を本番で利用するために必要だったことMasaya Aoyama
OpenStack上に展開するContainer as a Service を本番で利用するために必要だったこと
at OpenStack Days / Cloud Native Days 2018
CyberAgent, Inc
adtech studio
Strategic Infrastructure Agency
@amsy810
@makocchi
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matchingharmonylab
公開URL:https://arxiv.org/pdf/2404.19174
出典:Guilherme Potje, Felipe Cadar, Andre Araujo, Renato Martins, Erickson R. ascimento: XFeat: Accelerated Features for Lightweight Image Matching, Proceedings of the 2024 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2023)
概要:リソース効率に優れた特徴点マッチングのための軽量なアーキテクチャ「XFeat(Accelerated Features)」を提案します。手法は、局所的な特徴点の検出、抽出、マッチングのための畳み込みニューラルネットワークの基本的な設計を再検討します。特に、リソースが限られたデバイス向けに迅速かつ堅牢なアルゴリズムが必要とされるため、解像度を可能な限り高く保ちながら、ネットワークのチャネル数を制限します。さらに、スパース下でのマッチングを選択できる設計となっており、ナビゲーションやARなどのアプリケーションに適しています。XFeatは、高速かつ同等以上の精度を実現し、一般的なラップトップのCPU上でリアルタイムで動作します。
セル生産方式におけるロボットの活用には様々な問題があるが,その一つとして 3 体以上の物体の組み立てが挙げられる.一般に,複数物体を同時に組み立てる際は,対象の部品をそれぞれロボットアームまたは治具でそれぞれ独立に保持することで組み立てを遂行すると考えられる.ただし,この方法ではロボットアームや治具を部品数と同じ数だけ必要とし,部品数が多いほどコスト面や設置スペースの関係で無駄が多くなる.この課題に対して音𣷓らは組み立て対象物に働く接触力等の解析により,治具等で固定されていない対象物が組み立て作業中に運動しにくい状態となる条件を求めた.すなわち,環境中の非把持対象物のロバスト性を考慮して,組み立て作業条件を検討している.本研究ではこの方策に基づいて,複数物体の組み立て作業を単腕マニピュレータで実行することを目的とする.このとき,対象物のロバスト性を考慮することで,仮組状態の複数物体を同時に扱う手法を提案する.作業対象としてパイプジョイントの組み立てを挙げ,簡易な道具を用いることで単腕マニピュレータで複数物体を同時に把持できることを示す.さらに,作業成功率の向上のために RGB-D カメラを用いた物体の位置検出に基づくロボット制御及び動作計画を実装する.
This paper discusses assembly operations using a single manipulator and a parallel gripper to simultaneously
grasp multiple objects and hold the group of temporarily assembled objects. Multiple robots and jigs generally operate
assembly tasks by constraining the target objects mechanically or geometrically to prevent them from moving. It is
necessary to analyze the physical interaction between the objects for such constraints to achieve the tasks with a single
gripper. In this paper, we focus on assembling pipe joints as an example and discuss constraining the motion of the
objects. Our demonstration shows that a simple tool can facilitate holding multiple objects with a single gripper.
7. Market trend of Kubernetes
Azure Kubernetes Service (AKS) GA
– New regions, more features, increased productivity
by Microsoft Azure Blog 2018.6.13
• 「Microsoft Build 2018」にて「Azure Container
Service」から「Azure Kubernetes Service」と改名
• オーストラリア東部、英国南部、米国西部、米国西部
2、北ヨーロッパの各リージョンで利用可能。今後数
カ月以内に10のリージョンでの追加展開が予定
8. Market trend of Kubernetes
Kubernetes on Windows ServerをDocker EEでサポート。Linuxと
Windows Serverのコンテナオーケストレーションを統一的に管理。
DockerCon 2018 by Publickey 2018.6.14
• Docker EEでWindows Server版
Kubernetesでサポート
9. Market trend of Kubernetes
VMwareもKubernetesのマネージドサービス「VMware Kubernetes
Engine」提供へ。VMware Cloud on AWSを皮切りにAzure版も予定
by Publickey 2018.6.28
• VMware CloudのサービスとしてKubernetesのマネー
ジドサービス「VMware Kubernetes Engine」(VKE)
を提供
• Kubernetesの複雑さを抽象化した「SmartCluster」を
提供
• VMwareもKubernetesをマルチクラウド戦略の軸に
10. Market trend of Kubernetes
GitHub Goes All in on Kubernetes
by THENEWSTACK 2017.8.16
SRE(Site Reliability Engineering)の事例としても興味深い!!
11. Market trend of Kubernetes
昨年、Distribution,PaaS,Managed,Installation/Operationsというカ
テゴリに分けて、Kubernetesに関係するサービスやツールを調べてみ
ました。
https://qiita.com/cyberblack28/items/e4836b4ff06156f69588
※1年以上前の情報です。
Investigating of Kubernetes Platform
16. Kubernetes Architecture
API
UI
CLI
API Server Scheduler Controller-Manager
etcd
Master
コンポーネント 概要
API Server kubernetesのAPIです。利用者との通信、REST,CRUD,認証認可を行います。
Scheduler PodをどのNodeへデプロイするかスケジューリングします。
Controller-Manager クラスタを制御するコンポーネントで、Nodeの稼働状況監視、コンテナーのレプ
リケーション等、リソース定義を具現化します。
etcd クラスタの全情報を格納するデータストアです。他のコンポーネントはAPI Server
を経由して、etcdに保存された情報を監視して、更新があると直ちに通知される仕
組みになっています。
21. Kubernetes Architecture
Service
Client
Node
Service
Pod
Pod
Pod
機能 概要
ClusterIP クラスタ内でPod同士が通信するためのプライベートIPアドレス
ExternalIP 指定したNodeのIP:Portで受けたトラフィックをコンテナーに転送して、外部通信
NodePort 全NodeにおいてIP:Portで受けたトラフィックをコンテナーに転送して、外部通信
LoadBalancer LB経由でアクセス可能なService、L4ロードバランサ機能
endpoint
Pod Pod
Node
Node
LoadBalancer
Serviceはクラスター内外からのリクエストをPodにアクセスする為のルーティン
グやDNS機能を提供するオブジェクトです。
22. Kubernetes Architecture
Ingress
Ingressは、外部 HTTP(S) トラフィックを内部Serviceにルーティングするための
ルールと設定の集合をカプセル化するKubernetesリソースです。
Serviceがレイヤ4(TCP/UDP over IP)、Ingressがレイヤ7(HTTP(S))になります。
Service
Pod
Internet
Pod Pod
Ingress
endpoint
31. Get started with Rancher 2.0
OS Hardware Software
Ubuntu 16.04 (64-bit) Memory: 4GB • 1.12.6
• 1.13.1
• 17.03.2Red Hat Enterprise Linux
7.5 (64-bit)
RancherOS 1.3.0 (64-bit)
Step 1: Prepare a Linux Host
Step 2: Start the server
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
Web Access!! https://<server_ip>
53. Kubernetes & Rancher Handson
3.「kubectl get nodes」の実行
> kubectl get nodes
NAME STATUS ROLES AGE VERSION
rancher-host Ready controlplane,etcd,worker 39m v1.10.5
> kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.8",
GitCommit:"c138b85178156011dc934c2c9f4837476876fb07", GitTreeState:"clean",
BuildDate:"2018-05-21T19:01:12Z", GoVersion:"go1.9.3", Compiler:"gc",
Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.5",
GitCommit:"32ac1c9073b132b8ba18aa830f46b77dcceb0723", GitTreeState:"clean",
BuildDate:"2018-06-21T11:34:22Z", GoVersion:"go1.9.3", Compiler:"gc",
Platform:"linux/amd64"}
4.「kubectl version」の実行
54. Kubernetes & Rancher Handson
5.Guestbookアプリケーションのデプロイ
以下Guestbookアプリケーションのyamlファイルを利用して、デプロイします。
「https://raw.githubusercontent.com/kubernetes/examples/master/guestbook/all-in-
one/guestbook-all-in-one.yaml」
1.Guestbookアプリケーションのデプロイ
> kubectl apply -f
https://raw.githubusercontent.com/kubernetes/examples/master/guestbook/all-in-
one/guestbook-all-in-one.yaml
service "redis-master" created
deployment "redis-master" created
service "redis-slave" created
deployment "redis-slave" created
service "frontend" created
deployment "frontend" created
60. Kubernetes & Rancher Handson
付録1:guestbook-all-in-one.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
app: redis
tier: backend
role: master
spec:
ports:
- port: 6379
targetPort: 6379
selector:
app: redis
tier: backend
role: master
---
apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0
use extensions/v1beta1
kind: Deployment
metadata:
name: redis-master
spec:
selector:
matchLabels:
app: redis
role: master
tier: backend
replicas: 1
template:
metadata:
labels:
app: redis
role: master
tier: backend
spec:
containers:
- name: master
image: k8s.gcr.io/redis:e2e # or just image: redis
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379
---
redis-master
61. Kubernetes & Rancher Handson
付録1:guestbook-all-in-one.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-slave
labels:
app: redis
tier: backend
role: slave
spec:
ports:
- port: 6379
selector:
app: redis
tier: backend
role: slave
---
apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use
extensions/v1beta1
kind: Deployment
metadata:
name: redis-slave
spec:
selector:
matchLabels:
app: redis
role: slave
tier: backend
replicas: 2
template:
metadata:
labels:
app: redis
role: slave
tier: backend
spec:
containers:
- name: slave
image: gcr.io/google_samples/gb-redisslave:v1
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns
# If your cluster config does not include a dns service, then to
# instead access an environment variable to find the master
# service's host, comment out the 'value: dns' line above, and
# uncomment the line below:
# value: env
ports:
- containerPort: 6379
---
redis-slave
62. Kubernetes & Rancher Handson
付録1:guestbook-all-in-one.yaml
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
# if your cluster supports it, uncomment the following to automatically create
# an external load-balanced IP for the frontend service.
# type: LoadBalancer
ports:
- port: 80
selector:
app: guestbook
tier: frontend
---
apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0
use extensions/v1beta1
kind: Deployment
metadata:
name: frontend
spec:
selector:
matchLabels:
app: guestbook
tier: frontend
replicas: 3
template:
metadata:
labels:
app: guestbook
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google-samples/gb-frontend:v4
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns
# If your cluster config does not include a dns service, then to
# instead access environment variables to find service host
# info, comment out the 'value: dns' line above, and uncomment the
# line below:
# value: env
ports:
- containerPort: 80
redis-frontend
68. Information
The Kubernetes Book
出版社: Independently
published
ISBN-10: 1521823634
ISBN-13: 978-1521823637
kubernetesの入門者向けの書籍で、イラスト図
が多くわかりやすい内容です。
Kubernetes in Action
出版社: Manning Pubns Co
ISBN-10: 1617293725
ISBN-13: 978-1617293726
内容は実践的となっていますが、こちらも図解
が多くて分かりやすい書籍です。