SlideShare ist ein Scribd-Unternehmen logo
1 von 19
원본출처 : https://devcentral.f5.com/s/articles/CIS-and-Kubernetes-Part-1-Install-Kubernetes-and-
Calico
CIS and Kubernetes - Part 1: Install
Kubernetes and Calico
[CIS 와 쿠버네티스 – Part 1:
쿠버네티스와 Calico 설치하기]
Updated 3 months ago. Originally posted November 04, 2019 by Nicolas Menant
F5
Topics in this Article: bgp, calico,cis,cloud, containers,devops,icontrollx,kubernetes,ltm
Welcome to this series to see how to:


 Install Kubernetes and Calico (Part 1)
 Deploy F5 Container Ingress Services (F5 CIS) to tie applications lifecycle to our
application services (Part 2)
[Kubernetes 와 Calico 설치 (Part 1)
F5 Container Ingress Services (F5 CIS)를 우리 application 서비스의 application
lifecycle 과 결합하기 (Part2)]
Here is the setup of our lab environment:
[우리의 Lab 환경은 아래와 같습니다]
BIG-IP Version: 15.0.1
Kubernetes component: Ubuntu 18.04 LTM
[BIG-IP 버전 : 15.0.1
쿠버네티스 배포 환경 : Ubuntu 18.04 LTM]
We consider that your BIG-IPs are already setup and running:
[BIP-IPs 가 이미 설치되어 실행되고 있다고 가정합니다]
 Licensed and setup as a cluster
 The networking setup is already done
[Cluster 로 라이선스를 받아 설치 되었고, networking 설치도 이미 완료
되었습니다]
Part 1: Install Kubernetes and Calico
[Part 1: 쿠버네티스와 Calico 설치하기]
Setup our systems before installing kubernetes
[쿠버네티스 설치하기 전 시스템 설치 사항]
Step1: Update our systems and install docker
[Step1: 시스템 업데이트와 도커 설치하기]
To run containers in Pods, Kubernetes uses a container runtime. We will use docker
and follow the recommendation provided here
[컨테이너를 파드 안에서 실행 시키기 위해서 쿠버네티스는 컨테이너 런타임을
사용합니다. 우리는 컨테이너 런타임으로 도커를 사용할 것입니다. 여기에서
제공하는 추천을 따를 것입니다.]
As root on ALL Kubernetes components (Master and Node):
[모든 쿠버네티스 노드(마스터 노드와 워커 노드)에서 root user 로 실행]
# Install packages to allow apt to use a repository over HTTPS
# https 를 이용하여 apt 가 인터넷 상의 레포지토리를 쉽게 사용할 수 있도록
하기 위해서 패키지 설치하기
apt-get -y update && apt-get install -y apt-transport-https ca-
certificates curl software-properties-common
# Add Docker’s official GPG key
# 도커 공식 GPG(GNU Privacy Guard) 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key
add -
# Add Docker apt repository.
# 도커 apt 레포지토리 추가
add-apt-repository 
"deb [arch=amd64] https://download.docker.com/linux/ubuntu 
$(lsb_release -cs) 
stable"
# Install Docker CE.
# 도커 CE(Community Edition) 설치하기
apt-get -y update && apt-get install -y docker-ce=18.06.2~ce~3-
0~ubuntu
# Setup daemon.
# 데몬 설치하기
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
# Restart docker.
# 도커 재시작하기
systemctl daemon-reload
systemctl restart docker
We may do a quick test to ensure docker run as expected:
[도커가 예상대로 동작하는지 확인하기 위해서 퀵 테스트 하기]
docker run hello-world
Step2: Setup Kubernetes tools (kubeadm, kubelet and kubectl)
[Step2: 쿠버네티스 툴 설치하기 (kubeadm, kubelet, kubectl)]
To setup Kubernetes, we will leverage the following tools:
[쿠버네티스 설치를 위해서 아래의 툴들을 사용합니다]
kubeadm: the command to bootstrap the cluster.
kubelet: the component that runs on all of the machines in your cluster and does
things like starting pods and containers.
kubectl: the command line util to talk to your cluster.
[kubeadm: cluster 설치를 위해 사용되는 명령어]
[kubelet: 쿠버네티스 클러스터의 모든 노드에서 동작하면서 파드와 컨테이너를
동작시키는 일을 수행한다]
[kubectl: 쿠버네티스 클러스터에 명령을 전달하여 실행하기 위한 명령 라인
유틸리티]
As root on ALL Kubernetes components (Master and Node):
[모든 쿠버네티스 노드(마스터 노드와 워커 노드)에서 root user 로 실행]
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg |
apt-key add -
cat <<EOF | tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get -y update
We can review which version of kubernetes is supported with F5 Container Ingress
Services here
At the time of this article, the latest supported version is v1.13.4. We'll make sure to
install this specific version with our following step
[F5 Container Ingress Service 가 어떤 버전의 쿠버네티스를 지원하는지 여기 에서
확인할 수 있습니다.
이 글을 쓰고 있던 시점에서는 F5 CIS 가 지원하는 최신 버전은 v1.13.4
이었습니다. 다음의 스텝을 통해서 이 특정 버전을 설치하는 것을 확실히 할
것입니다.]
apt-get install -qy kubelet=1.13.4-00 kubeadm=1.13.4-00
kubectl=1.13.4-00 kubernetes-cni=0.6.0-00
apt-mark hold kubelet kubeadm kubectl
Install Kubernetes
[쿠버네티스 설치하기]
Step1: Setup Kubernetes with kubeadm
[Step1: kubeadm 으로 쿠버네티스 설정하기]
We will follow the steps provided in the documentation here
As root on the MASTER node (make sure to update the api server address to
reflect your master node IP):
[여기에서 제공하는 문서의 step 을 따라 설치를 진행할 것입니다.
Master 노드에서 root 계정으로 진행합니다.(Master node IP 로 api server
address 를 반드시 업데이트 해야 합니다)]
kubeadm init --apiserver-advertise-address=10.1.20.20 --pod-
network-cidr=192.168.0.0/16
Note: SAVE somewhere the kubeadm join command. It is needed to "assimilate" the
node later. In my example, it looks like the following (YOURS WILL BE DIFFERENT):
[Note: 위의 실행 결과 가장 마지막에 출력되는 kubeadm join 명령을 저장해
두세요. 이 것은 나중에 worker node 를 쿠버네티스 클러스터에 포함시킬 때
필요합니다.
아래와 같이 생겼습니다.(당신의 경우는 아래와 다른 값이 출력될
것입니다)]
kubeadm join 10.1.20.20:6443 --token rlbc20.va65z7eauz89mmuv --
discovery-token-ca-cert-hash
sha256:42eca5bf49c645ff143f972f6bc88a59468a30276f907bf40da3bcf512
7c0375
Now you should NOT be ROOT anymore. Go back to your non root user. Since i
use Ubuntu, i'll use the default "ubuntu" user
Run the following commands as highlighted in the screenshot above:
[지금부터는 더이상 root 계정으로 실행하지 말아야 합니다. 일반 계정으로 돌아
가세요. 여기서는 Ubuntu 를 사용하기 때문에, 기본으로 “Ubuntu” 사용자 계정을
사용할 것입니다]
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Step2: Install the networking component of Kubernetes
[Step2: 쿠버네티스의 networking 요소 설치하기]
The last step is to setup the network related to our k8s infrastructure. In our
kubeadm init command, we used --pod-network-cidr=192.168.0.0/16 in order to be
able to setup next on network leveraging Calico as documented here
[마지막 단계는 network 와 관련된 K8S 인프라를 구성하는 것입니다. kubeadm
init 명령어를 이용해서 --pod-network-cidr=192.168.0.0/16 를 사용했습니다. 이
것은 여기에 설명되어 있는 내용처럼 다음 단계에서 네트워크 CNI 인 Calico
network 를 설정하기 위해서입니다.]
kubectl apply -f
https://docs.projectcalico.org/v3.8/manifests/calico.yaml
You may monitor the deployment by running the command:
[Deployment 상황을 다음과 같은 명령어로 모니터링 할 수 있습니다]
kubectl get pods --all-namespaces
After some time (<1 min), everything should have a "Running" status.
Make sure that CoreDNS started also properly. If everything is up and running, we
have our master setup properly and can go to the node to setup k8s on it.
[어느 정도 시간이 흐른 후에(1 분 이내), 모두 status 가 “Running” 상태여야만
합니다.
CoreDNS 도 정상적으로 구동되었는지 확인해야 합니다. 모든 pod 가 running
상태이면, 마스터 셋업은 정상적으로 완료 된 것입니다. 이제 각 worker node 에
k8s 를 설정할 수 있습니다]
Step3: Add the Node to our Kubernetes Cluster
[Step3: 쿠버네티스 클러스터에 워커 Node 추가하기]
Now that the master is setup properly, we can assimilate the node. You need to
retrieve the "kubeadmin join …" command that you received at the end of the
"kubeadm init …" cmd. You must run the following command as ROOT on the
Kubernetes NODE (remember that you got a different hash and token, the
command below is an example):
[마스터 노드가 셋업이 완료되었으면, 노드를 클러스터에 편입시킬 수 있습니다.
“kubeadm init…” 명령 시 받아서 저장해 놓았던 “kubeadm join” 명령어를 다시
가져와 사용해야 합니다. 다음의 명령들은 쿠버네티스 노드에서 반드시 root
계정으로 실행해야 합니다. (여러분 각각은 서로 다른 hash 와 token 을 발급 받게
된다는 것을 기억하세요. 아래 명령은 단지 하나의 예입니다) ]
kubeadm join 10.1.20.20:6443 --token rlbc20.va65z7eauz89mmuv --
discovery-token-ca-cert-hash
sha256:42eca5bf49c645ff143f972f6bc88a59468a30276f907bf40da3bcf512
7c0375
We can check the status of our node by running the following command on
our MASTER (ubuntu user)
[다음 명령어를 마스터 노드(Ubuntu user)에서 실행함으로써 각 worker 노드들의
상태를 확인할 수 있습니다]
kubectl get nodes
Both components should have a "Ready" status.
Last step is to setup Calico between our BIG-IPs and our Kubernetes cluster
[모든 노드들은 반드시 “Ready” 상태이어야만 합니다.
이제 마지막 단계로 BIG-IPs 와 쿠버네티스 cluster 사이에 Calico 를 설정하는
단계입니다]
Setup Calico
[쿠버네티스 cluster 의 Calico BGP 와 BIP-IP BGP 간 neighboring
설정하기]
We need to setup Calico on our BIG-IPs and k8S components. We will setup our
environment with the following AS Number: 64512
[Calico 를 BIP-IPs 와 쿠버네티스 양쪽 모두에 설정을 해야 합니다. 환경 설정을
위해서 AS Number 64512 를 사용할 것입니다.]
Step1: BIG-IPs Calico setup
[Step1:BIG-IP Calico 설정]
F5 has documented this procedure here
[F5 의 Calico 설정 절차에 대한 문서는 여기를 참조하세요.]
We will use our self IPs on the internal network. Therefore we need to make sure of
the following:
[내부 network 를 위해서는 자체 IP 들을 사용할 것입니다. 그렇게 하기 위해서
다음 사항들을 확실히 해야 합니다.]
 The self IP has a port lock down setup to "Allow All"
 Or add a TCP custom port to the self IP: TCP port 179
 [Self IP 는 “Allow All”에 반해서 port lock down setup 을 가집니다.
 그렇지 않으면 self IP 에 TCP custom port 를 추가합니다. : TCP port 179]
 * portlock down 은 BIP-IP 의 self IP 의 접근을 사전에 정의된 protocol 과 port 에
대해서만 받아들이고, 그 이외의 것들은 보안을 위해 차단하는 기능입니다.
 * 이에 반해 Allow All 은 모든 protocol 과 port 를 차단 없이 받아들입니다.
 * TCP port 179 는 BGP 가 neighbor 와 통신하기 위해 사용하는 well-known
port 입니다.
You need to allow BGP on the default route domain 0 on your BIG-IPs. Connect to
the BIG-IP GUI on go into Network > Route domain. Click on Route Domain "0" and
allow BGP
[BIP-IPs 의 default route domain 0 에 BGP 를 허용해 주어야 합니다. ,BIP-IP
GUI 에 연결한 후에, “Newokr > Route domain” 탭으로 갑니다. Route Domain “0”를
클릭하고, BGP 를 허용합니다]
Click on "Update"
[하단의 “Update”를 클릭합니다]
Once this is done, connect via SSH and get into a bash shell on both BIG-IPs
Run the following commands:
[업데이트가 완료 되면, 각 BIG-IPs 에 SSH 로 bash shell 에 접속합니다.
다음의 명령어들을 실행합니다]
#access the IMI Shell
imish
#Switch to enable mode
enable
#Enter configuration mode
config terminal
#Setup route bgp with AS Number 64512
router bgp 64512
#Create BGP Peer group
neighbor calico-k8s peer-group
#assign peer group as BGP neighbors
neighbor calico-k8s remote-as 64512
#we need to add all the peers: the other BIG-IP, our k8s
components
neighbor 10.1.20.20 peer-group calico-k8s
neighbor 10.1.20.21 peer-group calico-k8s
#on BIG-IP1, run
neighbor 10.1.20.12 peer-group calico-k8s
#on BIG-IP2, run
neighbor 10.1.20.11 peer-group calico-k8s
#save configuration
write
#exit
end
You can review your setup with the command
[다음 명령어로 설정이 제대로 되었는지 확인할 수 있습니다]
show ip bgp neighbors
Note: your other BIG-IP should be identified with a router ID and have a BGP state
of "Active". The k8s node won't have a router ID since BGP hasn't already been
setup on those nodes.
[Note: 다른 또 하나의 BIP-IP 는 다른 router ID 를 가지고(remote route ID
10.1.20.12) “Active” 상태여야 합니다. 쿠버네티스 노드(remote router ID
0.0.0.0)는 아직 각 노드에 BGP 가 설정되지 않았기 때문에 router ID 를 가지지
않을 것입니다.]
Keep your BIG-IP SSH sessions open. We'll re-use the imish terminal once our k8s
components have Calico setup
[BIP-IP 들에 대한 SSH 세션을 오픈 상태로 유지 합니다. 쿠버네티스에 Calico
설정이 완료되고 나면 imish 터미널을 다시 사용할 것입니다.]
Step2: Kubernetes Calico setup
[Step2: 쿠버네티스 Calico 설정하기]
On the MASTER node (not as root), we need to retrieve the calicoctl binary
[쿠버네티스 마스터 노드에서 (root 계정이 아닌 계정으로), “calicoctl” binary 를
검색해서 가져와야 합니다]
curl -O -
L https://github.com/projectcalico/calicoctl/releases/download/v3
.10.0/calicoctl
chmod +x calicoctl
sudo mv calicoctl /usr/local/bin
We need to setup calicoctl as explained here
[calicoctl 을 여기에 설명된 내용을 참조하여 설치합니다]
sudo mkdir /etc/calico
Create a file /etc/calico/calicoctl.cfg with your preferred editor (you'll need sudo
privilegies). This file should contain the following
[“/etc/calico/calicoctl.cfg” 파일을 선호하는 editor 를 이용하여 생성합니다.(sudo
privileges 권한이 필요). 파일은 다음 내용을 포함해야 합니다.]
apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
datastoreType: "kubernetes"
kubeconfig: "/home/ubuntu/config"
Note: you may have to change the path specified by the kubeconfig parameter
based on the user you use to do kubectl command
[Note: kubectl 명령어를 수행하기 위해 사용하는 user 계정에서 kubeconfig
parameter 에 명시된 path 로 변경해 주어야 합니다.]
To make sure that calicoctl is properly setup, run the command
[calicoctl 이 정상적으로 설치되었는지 확인하기 위해서 다음 명령어를 실행해서
확인합니다.]
calicoctl get nodes
You should get a list of your Kubernetes nodes
[쿠버네티스 클러스터의 모든 노드들에 대한 list 가 출력되어 보여야 합니다]
Now we can work on our Calico/BGP configuration as documented here
[이제 여기에 있는 문서를 참조하여 Calico/BGP 설정 작업을 진행합니다.]
On the MASTER node:
[마스터 노드에서 실행]
cat << EOF | calicoctl create -f -
apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:
name: default
spec:
logSeverityScreen: Info
nodeToNodeMeshEnabled: true
asNumber: 64512
EOF
Note: Because we setup nodeToNodeMeshEnabled to True, the k8s node will
receive the same config
[Note: nodeToNodeMeshEnabled 를 True 로 설정하였기 때문에 쿠버네티스
노드들은 모두 동일한 config 를 받게 될 것입니다.]
We may now setup our BIG-IP BGP peers. Replace the peerIP Value with the IP
of your BIG-IPs
[BIP-IP 를 BGP peer 들로 설정합니다. peerIP 를 각 BIG-IP 의 real IP 로
변경합니다]
* Virtual IP(VIP)는 BGP peerIP 로 사용할 수 없기 때문에 이중화 서버 각각의
real IP 를 peerIP 로 해서 2 개의 neighbor 세션을 맺어야 합니다.
cat << EOF | calicoctl create -f -
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:
name: bgppeer-global-bigip1
spec:
peerIP: 10.1.20.11
asNumber: 64512
EOF
cat << EOF | calicoctl create -f -
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:
name: bgppeer-global-bigip2
spec:
peerIP: 10.1.20.12
asNumber: 64512
EOF
Review your setup with the command:
[다음 명령으로 설정이 올바르게 되었는지 확인합니다.]
calicoctl get bgpPeer
If you go back to your BIG-IP SSH connections, you may check that your
Kubernetes nodes have a router ID now in your BGP configuration:
imish
show ip bgp neighbors
Summary
So far we have:
[지금까지 우리는]
 Setup Kubernetes
 Setup Calico between our BIG-IPs and our Kubernetes cluster
[쿠버네티스를 설치하고, BIG-IP 와 쿠버네티스 클러스터 사이에 Calico 를
설치하였습니다.]
In the next article, we will setup F5 container Ingress Services (F5 CIS)
[다음 글에서 F5 Container Ingress Service 설정을 할 것입니다.]

Weitere ähnliche Inhalte

Was ist angesagt?

AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築Amazon Web Services Japan
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링OpenStack Korea Community
 
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌BESPIN GLOBAL
 
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo LongMetal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo LongVietnam Open Infrastructure User Group
 
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpacesAmazon Web Services Japan
 
DevSecOps in the Cloud from the Lens of a Well-Architected Framework.pptx
DevSecOps in the Cloud from the Lens of a  Well-Architected Framework.pptxDevSecOps in the Cloud from the Lens of a  Well-Architected Framework.pptx
DevSecOps in the Cloud from the Lens of a Well-Architected Framework.pptxTurja Narayan Chaudhuri
 
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...Toshiaki Maki
 
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)Amazon Web Services Korea
 
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch ServiceAmazon Web Services Japan
 
HA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and KeepalivedHA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and KeepalivedGanapathi Kandaswamy
 
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014Amazon Web Services
 
AWS Summit Seoul 2023 | AWS에서 최소한의 비용으로 구현하는 멀티리전 DR 자동화 구성
AWS Summit Seoul 2023 | AWS에서 최소한의 비용으로 구현하는 멀티리전 DR 자동화 구성AWS Summit Seoul 2023 | AWS에서 최소한의 비용으로 구현하는 멀티리전 DR 자동화 구성
AWS Summit Seoul 2023 | AWS에서 최소한의 비용으로 구현하는 멀티리전 DR 자동화 구성Amazon Web Services Korea
 
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019Amazon Web Services Korea
 
Google Cloud IAM 계정, 권한 및 조직 관리
Google Cloud IAM 계정, 권한 및 조직 관리Google Cloud IAM 계정, 권한 및 조직 관리
Google Cloud IAM 계정, 권한 및 조직 관리정명훈 Jerry Jeong
 
Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차Nalee Jang
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용NAVER D2
 

Was ist angesagt? (20)

AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
 
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
 
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo LongMetal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
 
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
 
DevSecOps in the Cloud from the Lens of a Well-Architected Framework.pptx
DevSecOps in the Cloud from the Lens of a  Well-Architected Framework.pptxDevSecOps in the Cloud from the Lens of a  Well-Architected Framework.pptx
DevSecOps in the Cloud from the Lens of a Well-Architected Framework.pptx
 
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
 
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
 
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
 
HA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and KeepalivedHA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and Keepalived
 
Introduction to Amazon EKS
Introduction to Amazon EKSIntroduction to Amazon EKS
Introduction to Amazon EKS
 
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
 
Ansible - Hands on Training
Ansible - Hands on TrainingAnsible - Hands on Training
Ansible - Hands on Training
 
AWS Summit Seoul 2023 | AWS에서 최소한의 비용으로 구현하는 멀티리전 DR 자동화 구성
AWS Summit Seoul 2023 | AWS에서 최소한의 비용으로 구현하는 멀티리전 DR 자동화 구성AWS Summit Seoul 2023 | AWS에서 최소한의 비용으로 구현하는 멀티리전 DR 자동화 구성
AWS Summit Seoul 2023 | AWS에서 최소한의 비용으로 구현하는 멀티리전 DR 자동화 구성
 
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
 
Google Cloud IAM 계정, 권한 및 조직 관리
Google Cloud IAM 계정, 권한 및 조직 관리Google Cloud IAM 계정, 권한 및 조직 관리
Google Cloud IAM 계정, 권한 및 조직 관리
 
Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용
 
Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料
 

Ähnlich wie F5 container ingress_service_in_kuernetes_with_calico_cni_by_duck_in_korea

Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxwonyong hwang
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideChan Shik Lim
 
가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 20150714
가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 20150714가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 20150714
가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 20150714경오 이
 
Calico routing modes_trans_by_duck_in_korean
Calico routing modes_trans_by_duck_in_koreanCalico routing modes_trans_by_duck_in_korean
Calico routing modes_trans_by_duck_in_koreanInfraEngineer
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guideseungdon Choi
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS충섭 김
 
오픈소스 모니터링 알아보기(Learn about opensource monitoring)
오픈소스 모니터링 알아보기(Learn about opensource monitoring)오픈소스 모니터링 알아보기(Learn about opensource monitoring)
오픈소스 모니터링 알아보기(Learn about opensource monitoring)SeungYong Baek
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)Ian Choi
 
CentOS 5.3에 Cubrid 설치 방법
CentOS 5.3에 Cubrid 설치 방법CentOS 5.3에 Cubrid 설치 방법
CentOS 5.3에 Cubrid 설치 방법phpkorea
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제Tae Young Lee
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)Ji-Woong Choi
 
리눅스 커널 디버거 KGDB/KDB
리눅스 커널 디버거 KGDB/KDB리눅스 커널 디버거 KGDB/KDB
리눅스 커널 디버거 KGDB/KDBManjong Han
 

Ähnlich wie F5 container ingress_service_in_kuernetes_with_calico_cni_by_duck_in_korea (20)

Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical Guide
 
K8s in action02
K8s in action02K8s in action02
K8s in action02
 
가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 20150714
가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 20150714가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 20150714
가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 20150714
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
Calico routing modes_trans_by_duck_in_korean
Calico routing modes_trans_by_duck_in_koreanCalico routing modes_trans_by_duck_in_korean
Calico routing modes_trans_by_duck_in_korean
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
Internship backend
Internship backendInternship backend
Internship backend
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guide
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
 
오픈소스 모니터링 알아보기(Learn about opensource monitoring)
오픈소스 모니터링 알아보기(Learn about opensource monitoring)오픈소스 모니터링 알아보기(Learn about opensource monitoring)
오픈소스 모니터링 알아보기(Learn about opensource monitoring)
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)
 
CentOS 5.3에 Cubrid 설치 방법
CentOS 5.3에 Cubrid 설치 방법CentOS 5.3에 Cubrid 설치 방법
CentOS 5.3에 Cubrid 설치 방법
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
 
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
 
리눅스 커널 디버거 KGDB/KDB
리눅스 커널 디버거 KGDB/KDB리눅스 커널 디버거 KGDB/KDB
리눅스 커널 디버거 KGDB/KDB
 

Mehr von InfraEngineer

Linux Kernel 101 for Beginner
Linux Kernel 101 for BeginnerLinux Kernel 101 for Beginner
Linux Kernel 101 for BeginnerInfraEngineer
 
삐약삐약 네트워크 엔지니어 이야기
삐약삐약 네트워크 엔지니어 이야기삐약삐약 네트워크 엔지니어 이야기
삐약삐약 네트워크 엔지니어 이야기InfraEngineer
 
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"InfraEngineer
 
주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기InfraEngineer
 
클라우드 엔지니어 취업 고군 분투기
클라우드 엔지니어 취업 고군 분투기클라우드 엔지니어 취업 고군 분투기
클라우드 엔지니어 취업 고군 분투기InfraEngineer
 
CKA(Kubernetes 자격증) 잘 준비하는 법_
CKA(Kubernetes 자격증) 잘 준비하는 법_CKA(Kubernetes 자격증) 잘 준비하는 법_
CKA(Kubernetes 자격증) 잘 준비하는 법_InfraEngineer
 
HTTP2도 잘 모르는데 벌써 HTTP3 (v2)
HTTP2도 잘 모르는데 벌써 HTTP3 (v2)HTTP2도 잘 모르는데 벌써 HTTP3 (v2)
HTTP2도 잘 모르는데 벌써 HTTP3 (v2)InfraEngineer
 
[MeetUp][3rd] 아무도 이야기하지 않는 클라우드 3사 솔직 비교
[MeetUp][3rd] 아무도 이야기하지 않는 클라우드 3사 솔직 비교[MeetUp][3rd] 아무도 이야기하지 않는 클라우드 3사 솔직 비교
[MeetUp][3rd] 아무도 이야기하지 않는 클라우드 3사 솔직 비교InfraEngineer
 
[MeetUp][3rd] Prometheus 와 함께하는 모니터링 및 시각화
[MeetUp][3rd] Prometheus 와 함께하는 모니터링 및 시각화[MeetUp][3rd] Prometheus 와 함께하는 모니터링 및 시각화
[MeetUp][3rd] Prometheus 와 함께하는 모니터링 및 시각화InfraEngineer
 
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2InfraEngineer
 
[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺InfraEngineer
 
[MeetUp][2nd] 알아두면 쓸모있는 테라폼
[MeetUp][2nd] 알아두면 쓸모있는 테라폼[MeetUp][2nd] 알아두면 쓸모있는 테라폼
[MeetUp][2nd] 알아두면 쓸모있는 테라폼InfraEngineer
 
IT 인프라 엔지니어에게 길을 묻다
IT 인프라 엔지니어에게 길을 묻다IT 인프라 엔지니어에게 길을 묻다
IT 인프라 엔지니어에게 길을 묻다InfraEngineer
 
Kubernetes networking-made-easy-with-open-v switch
Kubernetes networking-made-easy-with-open-v switchKubernetes networking-made-easy-with-open-v switch
Kubernetes networking-made-easy-with-open-v switchInfraEngineer
 
Packet walks in_kubernetes-v4
Packet walks in_kubernetes-v4Packet walks in_kubernetes-v4
Packet walks in_kubernetes-v4InfraEngineer
 
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹InfraEngineer
 
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화InfraEngineer
 
[MeetUp][1st] 자동화를 왜 해야하나요
[MeetUp][1st] 자동화를 왜 해야하나요[MeetUp][1st] 자동화를 왜 해야하나요
[MeetUp][1st] 자동화를 왜 해야하나요InfraEngineer
 

Mehr von InfraEngineer (18)

Linux Kernel 101 for Beginner
Linux Kernel 101 for BeginnerLinux Kernel 101 for Beginner
Linux Kernel 101 for Beginner
 
삐약삐약 네트워크 엔지니어 이야기
삐약삐약 네트워크 엔지니어 이야기삐약삐약 네트워크 엔지니어 이야기
삐약삐약 네트워크 엔지니어 이야기
 
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
 
주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기
 
클라우드 엔지니어 취업 고군 분투기
클라우드 엔지니어 취업 고군 분투기클라우드 엔지니어 취업 고군 분투기
클라우드 엔지니어 취업 고군 분투기
 
CKA(Kubernetes 자격증) 잘 준비하는 법_
CKA(Kubernetes 자격증) 잘 준비하는 법_CKA(Kubernetes 자격증) 잘 준비하는 법_
CKA(Kubernetes 자격증) 잘 준비하는 법_
 
HTTP2도 잘 모르는데 벌써 HTTP3 (v2)
HTTP2도 잘 모르는데 벌써 HTTP3 (v2)HTTP2도 잘 모르는데 벌써 HTTP3 (v2)
HTTP2도 잘 모르는데 벌써 HTTP3 (v2)
 
[MeetUp][3rd] 아무도 이야기하지 않는 클라우드 3사 솔직 비교
[MeetUp][3rd] 아무도 이야기하지 않는 클라우드 3사 솔직 비교[MeetUp][3rd] 아무도 이야기하지 않는 클라우드 3사 솔직 비교
[MeetUp][3rd] 아무도 이야기하지 않는 클라우드 3사 솔직 비교
 
[MeetUp][3rd] Prometheus 와 함께하는 모니터링 및 시각화
[MeetUp][3rd] Prometheus 와 함께하는 모니터링 및 시각화[MeetUp][3rd] Prometheus 와 함께하는 모니터링 및 시각화
[MeetUp][3rd] Prometheus 와 함께하는 모니터링 및 시각화
 
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
 
[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺
 
[MeetUp][2nd] 알아두면 쓸모있는 테라폼
[MeetUp][2nd] 알아두면 쓸모있는 테라폼[MeetUp][2nd] 알아두면 쓸모있는 테라폼
[MeetUp][2nd] 알아두면 쓸모있는 테라폼
 
IT 인프라 엔지니어에게 길을 묻다
IT 인프라 엔지니어에게 길을 묻다IT 인프라 엔지니어에게 길을 묻다
IT 인프라 엔지니어에게 길을 묻다
 
Kubernetes networking-made-easy-with-open-v switch
Kubernetes networking-made-easy-with-open-v switchKubernetes networking-made-easy-with-open-v switch
Kubernetes networking-made-easy-with-open-v switch
 
Packet walks in_kubernetes-v4
Packet walks in_kubernetes-v4Packet walks in_kubernetes-v4
Packet walks in_kubernetes-v4
 
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
 
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화
 
[MeetUp][1st] 자동화를 왜 해야하나요
[MeetUp][1st] 자동화를 왜 해야하나요[MeetUp][1st] 자동화를 왜 해야하나요
[MeetUp][1st] 자동화를 왜 해야하나요
 

F5 container ingress_service_in_kuernetes_with_calico_cni_by_duck_in_korea

  • 1. 원본출처 : https://devcentral.f5.com/s/articles/CIS-and-Kubernetes-Part-1-Install-Kubernetes-and- Calico CIS and Kubernetes - Part 1: Install Kubernetes and Calico [CIS 와 쿠버네티스 – Part 1: 쿠버네티스와 Calico 설치하기] Updated 3 months ago. Originally posted November 04, 2019 by Nicolas Menant F5 Topics in this Article: bgp, calico,cis,cloud, containers,devops,icontrollx,kubernetes,ltm Welcome to this series to see how to:    Install Kubernetes and Calico (Part 1)  Deploy F5 Container Ingress Services (F5 CIS) to tie applications lifecycle to our application services (Part 2) [Kubernetes 와 Calico 설치 (Part 1) F5 Container Ingress Services (F5 CIS)를 우리 application 서비스의 application lifecycle 과 결합하기 (Part2)] Here is the setup of our lab environment: [우리의 Lab 환경은 아래와 같습니다]
  • 2. BIG-IP Version: 15.0.1 Kubernetes component: Ubuntu 18.04 LTM [BIG-IP 버전 : 15.0.1 쿠버네티스 배포 환경 : Ubuntu 18.04 LTM] We consider that your BIG-IPs are already setup and running: [BIP-IPs 가 이미 설치되어 실행되고 있다고 가정합니다]  Licensed and setup as a cluster  The networking setup is already done [Cluster 로 라이선스를 받아 설치 되었고, networking 설치도 이미 완료 되었습니다]
  • 3. Part 1: Install Kubernetes and Calico [Part 1: 쿠버네티스와 Calico 설치하기] Setup our systems before installing kubernetes [쿠버네티스 설치하기 전 시스템 설치 사항] Step1: Update our systems and install docker [Step1: 시스템 업데이트와 도커 설치하기] To run containers in Pods, Kubernetes uses a container runtime. We will use docker and follow the recommendation provided here [컨테이너를 파드 안에서 실행 시키기 위해서 쿠버네티스는 컨테이너 런타임을 사용합니다. 우리는 컨테이너 런타임으로 도커를 사용할 것입니다. 여기에서 제공하는 추천을 따를 것입니다.] As root on ALL Kubernetes components (Master and Node): [모든 쿠버네티스 노드(마스터 노드와 워커 노드)에서 root user 로 실행] # Install packages to allow apt to use a repository over HTTPS # https 를 이용하여 apt 가 인터넷 상의 레포지토리를 쉽게 사용할 수 있도록 하기 위해서 패키지 설치하기 apt-get -y update && apt-get install -y apt-transport-https ca- certificates curl software-properties-common # Add Docker’s official GPG key # 도커 공식 GPG(GNU Privacy Guard) 키 추가 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - # Add Docker apt repository. # 도커 apt 레포지토리 추가 add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 4. # Install Docker CE. # 도커 CE(Community Edition) 설치하기 apt-get -y update && apt-get install -y docker-ce=18.06.2~ce~3- 0~ubuntu # Setup daemon. # 데몬 설치하기 cat > /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF mkdir -p /etc/systemd/system/docker.service.d # Restart docker. # 도커 재시작하기 systemctl daemon-reload systemctl restart docker We may do a quick test to ensure docker run as expected: [도커가 예상대로 동작하는지 확인하기 위해서 퀵 테스트 하기] docker run hello-world
  • 5. Step2: Setup Kubernetes tools (kubeadm, kubelet and kubectl) [Step2: 쿠버네티스 툴 설치하기 (kubeadm, kubelet, kubectl)] To setup Kubernetes, we will leverage the following tools: [쿠버네티스 설치를 위해서 아래의 툴들을 사용합니다] kubeadm: the command to bootstrap the cluster. kubelet: the component that runs on all of the machines in your cluster and does things like starting pods and containers. kubectl: the command line util to talk to your cluster. [kubeadm: cluster 설치를 위해 사용되는 명령어] [kubelet: 쿠버네티스 클러스터의 모든 노드에서 동작하면서 파드와 컨테이너를 동작시키는 일을 수행한다] [kubectl: 쿠버네티스 클러스터에 명령을 전달하여 실행하기 위한 명령 라인 유틸리티] As root on ALL Kubernetes components (Master and Node): [모든 쿠버네티스 노드(마스터 노드와 워커 노드)에서 root user 로 실행]
  • 6. curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - cat <<EOF | tee /etc/apt/sources.list.d/kubernetes.list deb https://apt.kubernetes.io/ kubernetes-xenial main EOF apt-get -y update We can review which version of kubernetes is supported with F5 Container Ingress Services here At the time of this article, the latest supported version is v1.13.4. We'll make sure to install this specific version with our following step [F5 Container Ingress Service 가 어떤 버전의 쿠버네티스를 지원하는지 여기 에서 확인할 수 있습니다. 이 글을 쓰고 있던 시점에서는 F5 CIS 가 지원하는 최신 버전은 v1.13.4 이었습니다. 다음의 스텝을 통해서 이 특정 버전을 설치하는 것을 확실히 할 것입니다.] apt-get install -qy kubelet=1.13.4-00 kubeadm=1.13.4-00 kubectl=1.13.4-00 kubernetes-cni=0.6.0-00 apt-mark hold kubelet kubeadm kubectl Install Kubernetes [쿠버네티스 설치하기] Step1: Setup Kubernetes with kubeadm [Step1: kubeadm 으로 쿠버네티스 설정하기] We will follow the steps provided in the documentation here As root on the MASTER node (make sure to update the api server address to reflect your master node IP): [여기에서 제공하는 문서의 step 을 따라 설치를 진행할 것입니다. Master 노드에서 root 계정으로 진행합니다.(Master node IP 로 api server address 를 반드시 업데이트 해야 합니다)]
  • 7. kubeadm init --apiserver-advertise-address=10.1.20.20 --pod- network-cidr=192.168.0.0/16 Note: SAVE somewhere the kubeadm join command. It is needed to "assimilate" the node later. In my example, it looks like the following (YOURS WILL BE DIFFERENT): [Note: 위의 실행 결과 가장 마지막에 출력되는 kubeadm join 명령을 저장해 두세요. 이 것은 나중에 worker node 를 쿠버네티스 클러스터에 포함시킬 때 필요합니다. 아래와 같이 생겼습니다.(당신의 경우는 아래와 다른 값이 출력될 것입니다)] kubeadm join 10.1.20.20:6443 --token rlbc20.va65z7eauz89mmuv -- discovery-token-ca-cert-hash sha256:42eca5bf49c645ff143f972f6bc88a59468a30276f907bf40da3bcf512 7c0375
  • 8. Now you should NOT be ROOT anymore. Go back to your non root user. Since i use Ubuntu, i'll use the default "ubuntu" user Run the following commands as highlighted in the screenshot above: [지금부터는 더이상 root 계정으로 실행하지 말아야 합니다. 일반 계정으로 돌아 가세요. 여기서는 Ubuntu 를 사용하기 때문에, 기본으로 “Ubuntu” 사용자 계정을 사용할 것입니다] mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config Step2: Install the networking component of Kubernetes [Step2: 쿠버네티스의 networking 요소 설치하기] The last step is to setup the network related to our k8s infrastructure. In our kubeadm init command, we used --pod-network-cidr=192.168.0.0/16 in order to be able to setup next on network leveraging Calico as documented here [마지막 단계는 network 와 관련된 K8S 인프라를 구성하는 것입니다. kubeadm init 명령어를 이용해서 --pod-network-cidr=192.168.0.0/16 를 사용했습니다. 이 것은 여기에 설명되어 있는 내용처럼 다음 단계에서 네트워크 CNI 인 Calico network 를 설정하기 위해서입니다.] kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml You may monitor the deployment by running the command: [Deployment 상황을 다음과 같은 명령어로 모니터링 할 수 있습니다] kubectl get pods --all-namespaces
  • 9. After some time (<1 min), everything should have a "Running" status. Make sure that CoreDNS started also properly. If everything is up and running, we have our master setup properly and can go to the node to setup k8s on it. [어느 정도 시간이 흐른 후에(1 분 이내), 모두 status 가 “Running” 상태여야만 합니다. CoreDNS 도 정상적으로 구동되었는지 확인해야 합니다. 모든 pod 가 running 상태이면, 마스터 셋업은 정상적으로 완료 된 것입니다. 이제 각 worker node 에 k8s 를 설정할 수 있습니다] Step3: Add the Node to our Kubernetes Cluster [Step3: 쿠버네티스 클러스터에 워커 Node 추가하기] Now that the master is setup properly, we can assimilate the node. You need to retrieve the "kubeadmin join …" command that you received at the end of the "kubeadm init …" cmd. You must run the following command as ROOT on the Kubernetes NODE (remember that you got a different hash and token, the command below is an example): [마스터 노드가 셋업이 완료되었으면, 노드를 클러스터에 편입시킬 수 있습니다. “kubeadm init…” 명령 시 받아서 저장해 놓았던 “kubeadm join” 명령어를 다시 가져와 사용해야 합니다. 다음의 명령들은 쿠버네티스 노드에서 반드시 root 계정으로 실행해야 합니다. (여러분 각각은 서로 다른 hash 와 token 을 발급 받게 된다는 것을 기억하세요. 아래 명령은 단지 하나의 예입니다) ]
  • 10. kubeadm join 10.1.20.20:6443 --token rlbc20.va65z7eauz89mmuv -- discovery-token-ca-cert-hash sha256:42eca5bf49c645ff143f972f6bc88a59468a30276f907bf40da3bcf512 7c0375 We can check the status of our node by running the following command on our MASTER (ubuntu user) [다음 명령어를 마스터 노드(Ubuntu user)에서 실행함으로써 각 worker 노드들의 상태를 확인할 수 있습니다] kubectl get nodes Both components should have a "Ready" status. Last step is to setup Calico between our BIG-IPs and our Kubernetes cluster [모든 노드들은 반드시 “Ready” 상태이어야만 합니다. 이제 마지막 단계로 BIG-IPs 와 쿠버네티스 cluster 사이에 Calico 를 설정하는 단계입니다] Setup Calico
  • 11. [쿠버네티스 cluster 의 Calico BGP 와 BIP-IP BGP 간 neighboring 설정하기] We need to setup Calico on our BIG-IPs and k8S components. We will setup our environment with the following AS Number: 64512 [Calico 를 BIP-IPs 와 쿠버네티스 양쪽 모두에 설정을 해야 합니다. 환경 설정을 위해서 AS Number 64512 를 사용할 것입니다.] Step1: BIG-IPs Calico setup [Step1:BIG-IP Calico 설정] F5 has documented this procedure here [F5 의 Calico 설정 절차에 대한 문서는 여기를 참조하세요.] We will use our self IPs on the internal network. Therefore we need to make sure of the following: [내부 network 를 위해서는 자체 IP 들을 사용할 것입니다. 그렇게 하기 위해서 다음 사항들을 확실히 해야 합니다.]  The self IP has a port lock down setup to "Allow All"  Or add a TCP custom port to the self IP: TCP port 179  [Self IP 는 “Allow All”에 반해서 port lock down setup 을 가집니다.  그렇지 않으면 self IP 에 TCP custom port 를 추가합니다. : TCP port 179]  * portlock down 은 BIP-IP 의 self IP 의 접근을 사전에 정의된 protocol 과 port 에 대해서만 받아들이고, 그 이외의 것들은 보안을 위해 차단하는 기능입니다.  * 이에 반해 Allow All 은 모든 protocol 과 port 를 차단 없이 받아들입니다.  * TCP port 179 는 BGP 가 neighbor 와 통신하기 위해 사용하는 well-known port 입니다. You need to allow BGP on the default route domain 0 on your BIG-IPs. Connect to the BIG-IP GUI on go into Network > Route domain. Click on Route Domain "0" and allow BGP [BIP-IPs 의 default route domain 0 에 BGP 를 허용해 주어야 합니다. ,BIP-IP GUI 에 연결한 후에, “Newokr > Route domain” 탭으로 갑니다. Route Domain “0”를 클릭하고, BGP 를 허용합니다]
  • 12. Click on "Update" [하단의 “Update”를 클릭합니다] Once this is done, connect via SSH and get into a bash shell on both BIG-IPs Run the following commands: [업데이트가 완료 되면, 각 BIG-IPs 에 SSH 로 bash shell 에 접속합니다. 다음의 명령어들을 실행합니다] #access the IMI Shell imish
  • 13. #Switch to enable mode enable #Enter configuration mode config terminal #Setup route bgp with AS Number 64512 router bgp 64512 #Create BGP Peer group neighbor calico-k8s peer-group #assign peer group as BGP neighbors neighbor calico-k8s remote-as 64512 #we need to add all the peers: the other BIG-IP, our k8s components neighbor 10.1.20.20 peer-group calico-k8s neighbor 10.1.20.21 peer-group calico-k8s #on BIG-IP1, run neighbor 10.1.20.12 peer-group calico-k8s #on BIG-IP2, run neighbor 10.1.20.11 peer-group calico-k8s #save configuration write #exit end
  • 14. You can review your setup with the command [다음 명령어로 설정이 제대로 되었는지 확인할 수 있습니다] show ip bgp neighbors Note: your other BIG-IP should be identified with a router ID and have a BGP state of "Active". The k8s node won't have a router ID since BGP hasn't already been setup on those nodes. [Note: 다른 또 하나의 BIP-IP 는 다른 router ID 를 가지고(remote route ID 10.1.20.12) “Active” 상태여야 합니다. 쿠버네티스 노드(remote router ID 0.0.0.0)는 아직 각 노드에 BGP 가 설정되지 않았기 때문에 router ID 를 가지지 않을 것입니다.]
  • 15.
  • 16. Keep your BIG-IP SSH sessions open. We'll re-use the imish terminal once our k8s components have Calico setup [BIP-IP 들에 대한 SSH 세션을 오픈 상태로 유지 합니다. 쿠버네티스에 Calico 설정이 완료되고 나면 imish 터미널을 다시 사용할 것입니다.] Step2: Kubernetes Calico setup [Step2: 쿠버네티스 Calico 설정하기] On the MASTER node (not as root), we need to retrieve the calicoctl binary [쿠버네티스 마스터 노드에서 (root 계정이 아닌 계정으로), “calicoctl” binary 를 검색해서 가져와야 합니다] curl -O - L https://github.com/projectcalico/calicoctl/releases/download/v3 .10.0/calicoctl chmod +x calicoctl sudo mv calicoctl /usr/local/bin We need to setup calicoctl as explained here [calicoctl 을 여기에 설명된 내용을 참조하여 설치합니다] sudo mkdir /etc/calico Create a file /etc/calico/calicoctl.cfg with your preferred editor (you'll need sudo privilegies). This file should contain the following [“/etc/calico/calicoctl.cfg” 파일을 선호하는 editor 를 이용하여 생성합니다.(sudo privileges 권한이 필요). 파일은 다음 내용을 포함해야 합니다.] apiVersion: projectcalico.org/v3 kind: CalicoAPIConfig metadata: spec: datastoreType: "kubernetes" kubeconfig: "/home/ubuntu/config" Note: you may have to change the path specified by the kubeconfig parameter based on the user you use to do kubectl command
  • 17. [Note: kubectl 명령어를 수행하기 위해 사용하는 user 계정에서 kubeconfig parameter 에 명시된 path 로 변경해 주어야 합니다.] To make sure that calicoctl is properly setup, run the command [calicoctl 이 정상적으로 설치되었는지 확인하기 위해서 다음 명령어를 실행해서 확인합니다.] calicoctl get nodes You should get a list of your Kubernetes nodes [쿠버네티스 클러스터의 모든 노드들에 대한 list 가 출력되어 보여야 합니다] Now we can work on our Calico/BGP configuration as documented here [이제 여기에 있는 문서를 참조하여 Calico/BGP 설정 작업을 진행합니다.] On the MASTER node: [마스터 노드에서 실행] cat << EOF | calicoctl create -f - apiVersion: projectcalico.org/v3 kind: BGPConfiguration metadata: name: default spec: logSeverityScreen: Info nodeToNodeMeshEnabled: true asNumber: 64512 EOF Note: Because we setup nodeToNodeMeshEnabled to True, the k8s node will receive the same config [Note: nodeToNodeMeshEnabled 를 True 로 설정하였기 때문에 쿠버네티스 노드들은 모두 동일한 config 를 받게 될 것입니다.]
  • 18. We may now setup our BIG-IP BGP peers. Replace the peerIP Value with the IP of your BIG-IPs [BIP-IP 를 BGP peer 들로 설정합니다. peerIP 를 각 BIG-IP 의 real IP 로 변경합니다] * Virtual IP(VIP)는 BGP peerIP 로 사용할 수 없기 때문에 이중화 서버 각각의 real IP 를 peerIP 로 해서 2 개의 neighbor 세션을 맺어야 합니다. cat << EOF | calicoctl create -f - apiVersion: projectcalico.org/v3 kind: BGPPeer metadata: name: bgppeer-global-bigip1 spec: peerIP: 10.1.20.11 asNumber: 64512 EOF cat << EOF | calicoctl create -f - apiVersion: projectcalico.org/v3 kind: BGPPeer metadata: name: bgppeer-global-bigip2 spec: peerIP: 10.1.20.12 asNumber: 64512 EOF Review your setup with the command: [다음 명령으로 설정이 올바르게 되었는지 확인합니다.] calicoctl get bgpPeer If you go back to your BIG-IP SSH connections, you may check that your Kubernetes nodes have a router ID now in your BGP configuration:
  • 19. imish show ip bgp neighbors Summary So far we have: [지금까지 우리는]  Setup Kubernetes  Setup Calico between our BIG-IPs and our Kubernetes cluster [쿠버네티스를 설치하고, BIG-IP 와 쿠버네티스 클러스터 사이에 Calico 를 설치하였습니다.] In the next article, we will setup F5 container Ingress Services (F5 CIS) [다음 글에서 F5 Container Ingress Service 설정을 할 것입니다.]