k8s應用01 入門例項

2022-01-29 19:36:25 字數 3940 閱讀 4217

1、關閉防火牆firewalld

2、安裝etcd和kubernetes

yum install -y etcd kubernetes(會自動安裝docker)

3、修改配置檔案

修改docker配置文docker

修改為options='--selinux-enabled=false --insecure-registry gcr.io'

修改kubernetes配置檔案

vi /etc/kubernetes/apiserver

kube_admission_control引數中刪除serviceaccount

4、按順序啟動服務

systemctl start etcd

systemctl start docker

systemctl start kube-apiserver

systemctl start kube-controller-manager

systemctl start kube-scheduler

systemctl start kubelet

systemctl start kube-proxy

檢查狀態

systemctl status etcd

systemctl status docker

systemctl status kube-apiserver

systemctl status kube-controller-manager

systemctl status kube-scheduler

systemctl status kubelet

systemctl status kube-proxy

乙個單機版本的kuberneted就搭建完畢了

1、為mysql服務建立乙個rc定義檔案:mysql-rc.yaml。rc(replication controller)定義檔案中有3個關鍵資訊:

[root@router ljy]# more mysql-rc.yaml 

apiversion: v1

kind: replicationcontroller #副本控制器rc

metadata:

name: mysql #rc的名稱,全域性唯一

spec:

replicas: 1 #pod副本的期待數量

selector:

template: #根據此模板建立pod的副本(例項)

metadata:

labels:

spec:

containers: #pod內容器的定義部分

- name: mysql #容器的名稱

image: hub.c.163.com/library/mysql #容器對應的docker image

ports:

- containerport: 3306 #容器應用監聽的埠號

env: #注入容器內的環境變數

- name: mysql_root_password

value: "123456"

2、建立好mysql-rc.yaml後,在master節點使用kubectl命令將它發布到k8s集群中。

kubectl create -f mysql-rc.yaml
使用kubectl命令檢視剛剛建立的rc:

使用下面命令檢視pod的建立情況:

3、建立關聯service

我們建立乙個與之關聯的kubernetes service-mysql的定義檔案:mysql-svc.yaml

apiversion: v1                      

kind: service #表明是k8s service

metadata:

name: mysql #service的全域性唯一名稱

spec:

ports:

- port: 3306 #service提供服務的埠號

selector: #service對應的pod擁有這裡定義的標籤

複製**

執行kubectl命令,建立service

kubectl create -f mysql-svc.yaml
檢視剛剛建立的service

kubectl get svc
注意到mysql服務被分配到了乙個值為10.254.46.214的cluster ip位址,這是乙個虛位址,隨後,k8s集群中其他新建立的pod就可以通過service的cluster ip+埠號3306來連線和訪問它了

1、先拉取乙個映象

2、建立對應的rc檔案myweb-rc.yaml,內容如下

apiversion: v1

kind: replicationcontroller

metadata:

name: myweb

spec:

replicas: 5 #pod副本期待數量為5

selector:

template:

metadata:

labels:

spec:

containers:

- name: myweb

ports:

- containerport: 8080

env:

- name: mysql_service_host

value: "mysql"

- name: mysql_service_port

value: "3306"

然後通過kubectl create命令完成rc的建立和驗證工作:

在rc中宣告了5個pod期待的數量,現在都已經建立並執行起來了

3、建立對應的service

建立對應的service,以下是完整的yaml定義檔案(myweb-svc.yaml)

apiversion: v1

kind: service

metadata:

name: myweb

spec:

type: nodeport

ports:

- port: 8080

nodeport: 30001

selector:

type=nodeport和nodeport=30001的兩個屬性,表明此service開啟了nodeport方式的外網訪問模式。

執行kubectl create命令進行建立:

kubectl create  -f myweb-svc.yaml
檢視一下

kubectl get services

k8s入門知識介紹01

k8s中文社群 1四組基本概念 pod pod控制器 name namespace lable label選擇器 service ingress 1.1 pod和pod控制器 kubernetes 的pod控制器 podk8s裡能夠被執行的最小邏輯單元 1個pod裡面可以執行多個容器 sidecar...

k8s入門簡介

1.docker的三種編排工具 docker的第一類編排工具 a.docker compose docker原生 只能對乙個主機上的容器進行編排,無法編排多個主機上的容器 b.docker swarm docker原生 可以對多個主機上的容器進行編排 c.docker machine docker原...

入門了解K8S

1 k8s,就是基於容器的集群管理平台,它的全稱,是kubernetes。kubernetes 是什麼?kubernetes 這個詞 於希臘語,有主管 舵手 船長的意思,我們從中能聽到一絲管理的意味,從圖示中也能看出來。乙個k8s系統,通常稱為乙個k8s集群 cluster 這個集群主要包括兩個部分...