Instalando k3d para jugar con k8s.

22887 단어 dockerkubernetes
가상 linux 플랫폼에 아티피컬로 veremoscomo 프로필 k3d을 설치하고 소형 그룹에 가상 운영체제를 설치한다.practicar o와corriendo를 포함한다.
K3D는 리비아 니토 소브레(livianito sobre)의 포장지로, 브린다 Rancher Labs호 도시 쿠베르네트(kubernetes)의 화폐 발행 구역이다.K3D corre sobre Docker는 instalado Docker가 주관하는 유엔 총회에서 instalado Docker와 합작하여 프로젝트를 완성했다."Además, K3D 라이센스""nodos virtuales""는 K8s사의 품질, 오염 및 내구성을 의미합니다."
예술 디자인 의향서에는 서로 다른 집단, 유엔 서비스 계좌, 행정 허가와 유한책임회사의 서비스 계좌의 필요 구조를 묘사했다.

프레비오스 호텔
Alcanza contener una máquina virtual(yo uso Virtaulbox)은 ubuntu instalado에 있습니다.우반도의 그림은 link으로 보인다.La instalación es muy sencilla y hay que tener en cuenta solamente que La máquina virtual debe tener acceso a internet y debe ser visible des nuestra máquina(el host de La máquina virtual).

Instalando Docker.
Suponiendo que la ip de nuestra máquina virtual es 192.168.0.91,nos logueamos desde el host a la máquina virtual mediante ssh:
ssh [email protected]
# El password es osboxes.org si bajaste la imagen desde el link que te pasé.
루에고 에제크타모스:
sudo apt install docker.io
Docker paraque arranque cuando iniciamos la máquina virtual 구성:
sudo systemctl start docker
sudo systemctl enable docker
... 마지막으로, probamos:
docker --version
이것은 버전, 목록...tenemos Docker instalado입니다.
podemos ejecutar adicionalmente;)
docker run -it --rm busybox echo "Hello from Docker!"

아호라k3d
이것은 간단한 instalación para 분타 versión estable이다.Primero necesitamos instalar curl:
sudo apt-get install curl
Vamos a Necestar también tener instalado kubectl para poder Interactiuar con el cluster.Lo instalamos,acá dejo los pasos.
너는 쿠베트의 instalado,seguimos를 사용할 수 있다...
wget -q -O - https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash
Listo!.Ahora vamos a crear nuestro primer cluster teniendo en cuenta los sigiuentes Requirementos:
  • Tenemos que poder crear 지속권->necesitamos entons darle un folder a 3kd para poder crear los vol 분쿠menes.
  • Tenemos que poder entra al cluster desde otra máquina(desde el host de la máquina virtual por ejempo).
  • 년 3월 1일.
  • 부에노, 에제크 타모스, 세지언트 코만도:
    # Creamos un folder:
    mkdir -p /tmp/k3dvol
    
    # Ejecutamos:
    k3d cluster create Kluster --api-port 192.168.0.91:6443 --volume /tmp/k3dvol:/tmp/k3dvol -p 8081:80@loadbalancer --agents 3
    
    당덕:

  • Kluster es el nombre del cluster
  • La ip 192.168.0.91 La ip de La máquina virtual.

  • -- 특히 노도스 음악 마스터의 매니저.

  • - 8081쪽:80@loadbalancerSpecifica el puerto(8081)는 través del cual podremos Ingrear al loadbalancer del cluster입니다.
  • 확률:
    kubectl get nodes
    
    # Deberíamos obtener algo parecido a esto:
    
    NAME                   STATUS   ROLES    AGE   VERSION
    k3d-kluster-agent-0    Ready    <none>   12s   v1.18.9+k3s1
    k3d-kluster-server-0   Ready    master   10s   v1.18.9+k3s1
    k3d-kluster-agent-2    Ready    <none>   11s   v1.18.9+k3s1
    k3d-kluster-agent-1    Ready    <none>   10s   v1.18.9+k3s1
    
    메비, 테네모스는 걸출한 대가이다.와모스 아우사로!

    컴퓨터 클러스터.
    모든 위트머스(pods por ejempo)는api 중간에 있는 K8s 클러스터에서 서로 교류할 수 있습니다.일반적인 SAP 유틸리티에는 인증, 인증 및 액세스 제어가 포함됩니다.공식 이전 클러스터(por fuera del mismo 클러스터) 중 이 클러스터는 유엔 서비스 계정을 가지고 있습니다.Vamos a crear un usuario(서비스 계정) 및 asignarle Permisdor de Administrator.

    Paso 1-Creación del Service 계정 및 Obtención del Secret.
    # Seteamos el usuario a crear (sapiens en este caso):
    user=sapien
    
    # Creamos el Service Account en el namespace kube-system:
    kubectl create sa ${user} -n kube-system
    
    # Obtenemos el secret para el Service Account creado:
    secret=$(kubectl get sa ${user} -n kube-system -o json | jq -r .secrets[].name)
    echo "secret = ${secret}"
    

    Paso 2 - 인증 및 토큰 획득
    kubectl get secret ${secret} -n kube-system -o json | jq -r '.data["ca.crt"]' | base64 -d > ca.crt
    user_token=$(kubectl get secret ${secret} -n kube-system -o json | jq -r '.data["token"]' | base64 -d)
    echo "token = ${user_token}"
    

    Paso 3 - 환경 구성
    c=`kubectl config current-context`
    echo "context = $c"
    
    cluster_name=`kubectl config get-contexts $c | awk '{print $3}' | tail -n 1`
    echo "cluster_name= ${cluster_name}"
    
    endpoint=`kubectl config view -o jsonpath="{.clusters[?(@.name == \"${cluster_name}\")].cluster.server}"`
    echo "endpoint = ${endpoint}"
    

    Paso 4 - 클러스터의 최종 서비스 계정 구성 - 역할 바인딩.
    # Se bindea el service account al rol de administrador existente...
    kubectl create clusterrolebinding add-on-cluster-admin-${user} --clusterrole=cluster-admin --serviceaccount=kube-system:${user}
    
    # Creamos el archivo de configuación para la conección.
    export KUBECONFIG=$HOME/${user}-kube.yml
    touch $HOME/${user}-kube.yml
    
    kubectl config set-cluster ${cluster_name} \
        --embed-certs=true \
        --server=${endpoint} \
        --certificate-authority=./ca.crt
    
    kubectl config set-credentials ${user}-${cluster_name#cluster-} --token=${user_token}
    
    kubectl config set-context ${user}-${cluster_name#cluster-} \
        --cluster=${cluster_name} \
        --user=${user}-${cluster_name#cluster-}
    
    아호라 쿠다 코피아르 알키보 사피엔스 쿠베.yml a la máquina des la cual nos queremos conctar a cluster(가상 호스트) 및 agregarlo el path a la variable de entorno KUBECONFIG:
    export KUBECONFIG=somepath/sapien-kube.yml
    
    Lo probamos:
    #Seteamos el contexto (el nombre del contexto dependerá del nombre del SA):
    k config set-context sapiens-k3d-Kluster
    
    k get nodes
    ...
    NAME                   STATUS   ROLES    AGE   VERSION
    k3d-kluster-agent-1    Ready    <none>   8h    v1.18.9+k3s1
    k3d-kluster-agent-0    Ready    <none>   8h    v1.18.9+k3s1
    k3d-kluster-agent-2    Ready    <none>   8h    v1.18.9+k3s1
    k3d-kluster-server-0   Ready    master   8h    v1.18.9+k3s1
    
    Podemos crear 유엔 이름 공간:
    kubectl create namespace testadmin
    ...
    namespace/testadmin created
    
    그 밖에 유엔 서비스 계좌 중의 공용 사업 계좌는 유엔 행정 관리 기구이다.미시온 칸프리다.

    당신은 유한한 권리를 가질 권리가 있다고 말합니까?
    앞의 vimos como crear 유엔 서비스 계정과 cómo bindearlo 관리 허가증.이것은 유엔 집단에서 그의 역할을 하는 집단 관리자이다.Atención conesto, K8은 캐릭터, 캐릭터, 집단 캐릭터의 비율을 포함하지 않는다.집단에서 역할을, 집단에서 역할을, 집단에서 역할을, 집단에서 역할을, 집단에서 역할을, 집단에서 역할을.
    아호라 와모스(Ahora vamos)는 민간 기업이다.Antes, vamos a plantear el siguiente Requiremento: "우리는 우리의 요구를 충족시킬 적당한 명칭 공간이 필요하다."
    만약 당신이 이름을 필요로 한다면, 당신의 이름 공간은 다음과 같습니다.
    k create namespace amy
    
    이것은 매우 좋은 이름 공간이다.클레모스 엘아치보 에이미가 맡은 역할.yaml con el siguiente contenido.
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      namespace: amy
      name: pod-and-pod-logs-reader
    rules:
    - apiGroups: [""]
      resources: ["pods", "pods/log"]
      verbs: ["get", "list"]
    
    lo creamos:
    k create -f amy-role.yaml
    ...
    role.rbac.authorization.k8s.io/pod-and-pod-logs-reader created
    
    아호라 테네모스 레페티르 로스 미스모스 아르구노스 칸비오스 장원:
    # Seteamos el usuario a crear (amy en este caso):
    user=amy
    
    # Creamos el Service Account en el namespace amy:
    kubectl create sa ${user} -namespace amy
    
    secret=$(kubectl get sa ${user} -n amy -o json | jq -r .secrets[].name)
    echo "secret = ${secret}"
    
    kubectl get secret ${secret} -n amy -o json | jq -r '.data["ca.crt"]' | base64 -d > ca.crt
    user_token=$(kubectl get secret ${secret} -n amy -o json | jq -r '.data["token"]' | base64 -d)
    echo "token = ${user_token}"
    
    
    c=`kubectl config current-context`
    echo "context = $c"
    
    cluster_name=`kubectl config get-contexts $c | awk '{print $3}' | tail -n 1`
    echo "cluster_name= ${cluster_name}"
    
    endpoint=`kubectl config view -o jsonpath="{.clusters[?(@.name == \"${cluster_name}\")].cluster.server}"`
    echo "endpoint = ${endpoint}"
    
    
    # Acá realizamos el binding al role creado unos pasos antes... al rol con privilegios limitados y en el namespace amy.
    # Prestar atención: ahora creamos un rolebinding en lugar de un clusterrolebinding y además lo creamos en el namespace amy,
    # el mismo namespace en donde creamos el role.
    kubectl create rolebinding add-on-cluster-${user} --role=pod-and-pod-logs-reader --serviceaccount=amy:${user} -namespace amy
    
    # Creamos el archivo de configuación para la conección.
    export KUBECONFIG=$HOME/${user}-kube.yml
    touch $HOME/${user}-kube.yml
    
    kubectl config set-cluster ${cluster_name} \
        --embed-certs=true \
        --server=${endpoint} \
        --certificate-authority=./ca.crt
    
    kubectl config set-credentials ${user}-${cluster_name#cluster-} --token=${user_token}
    
    kubectl config set-context ${user}-${cluster_name#cluster-} \
        --cluster=${cluster_name} \
        --user=${user}-${cluster_name#cluster-}
    
    
    저는 todo fue bien, deber i amos tener와 amy kube입니다.yml listo para ser utilizado.

    Vamos a probarlo
    새로운 관점에서 보면 전통적인 집단과는 다른 현실이다.
    export KUBECONFIG=somepath/amy-kube.yml
    
    두 번째 그룹:
    k config set-context amy-k3d-Kluster --namespace=amy
    
    y ejecutamos:
    k get nodes
    ...
    Error from server (Forbidden): nodes is forbidden: User "system:serviceaccount:amy:amy" cannot list resource "nodes" in API group "" at the cluster scope
    
    완벽무결, 허가증, 서비스 계좌가 없습니다.질문: 한 가지 물어보고 싶은 거 아니에요?
    k get pod
    ...
    No resources found in amy namespace.
    
    라이센스가 없는 Funciona

    코멘타리오스의 결말
    Hemos visto como는 간단한 K3d 클러스터로 이 클러스터는 독립된 클러스터로 제한된 반복 작업에서 pruebas와 hasta tenerlo 작업을 실현하고 sobre Docker와 다른 이해관계자 사이에 K3d를 구축했다.
    현재 존재하는 실현 방안은 Lens개의 실현 방안을 포함하는데 그들의 형식은 간단하고 자동적으로 조정하며 중요한 기능이다.제3자의 유엔 서비스 계좌와 행정 허가증 및 허가증 유한공사에서 명칭 공간과 운영 허가증을 보호한다.쿠베르네트스 정부 관리의 건의

    좋은 웹페이지 즐겨찾기