k8s体验

k8s初体验

  • Kubernetes安装
    • 镜像加速
    • 启动k8s及docker
    • Demo
      • 1. 创建pod
      • 2. 创建service
      • 3. 使用NodePort使得service也能被外网访问

Kubernetes安装

安装环境:vmware中安装的虚拟机,系统为centos7
在centos中安装Kubernetes比较简单,一条命令即可:

yum install docker etcd kubernetes -y

注意: 安装完之后,还需修改配置,否则后期出现:创建rc与pod的时候会出现pod无法创建但是rc能创建问题,解决方式为:

vim /etc/kubernetes/apiserver
具体为删除/etc/kubernetes/apiserver配置中,KUBE_ADMISSION_CONTROL 中的
ServiceAccount字段(若已启动k8s,则重启kube-apiserver)

镜像加速

加速链接可参考阿里云镜像加速节点(免费)

修改docker配置文件: vim /etc/docker/daemon.json
配置如下:
{"registry-mirrors": ["https://***.aliyuncs.com"]}

启动k8s及docker

systemctl start etcd
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy
systemctl start docker

Demo

在k8s中,有pod和service的概念,简单理解的话:pod为容器运行实例,而pod的运行ip重新发布时会更改,而service用来解决这个问题,service的ip不会更改,通过service的ip来访问pod应用。

1. 创建pod

(1)创建文件, Httpd-Deployment.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: httpd
spec:
  replicas: 4
  template:
    metadata:
      labels:
        run: httpd
    spec:
      containers:
      - name: httpd
        image: httpd
        ports:
        - containerPort: 80

(2)执行命令,用于创建pod:

kubectl apply -f Httpd-Deployment.yaml

(3)查询pod

kubectl get pod -o wide

在这里插入图片描述

curl 172.17.0.3:80

在这里插入图片描述

2. 创建service

(1) 创建文件, Httpd-Service.yaml

apiVersion: v1
kind: Service
metadata:
  name: httpd-svc
spec:
  selector:
    run: httpd
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 80

(2)执行命令,创建service

kubectl apply -f Httpd-Service.yaml

(3)查询状态

kubectl get svc

在这里插入图片描述

curl 10.254.177.95:8080

3. 使用NodePort使得service也能被外网访问

(1)修改之前的Httpd-Service.yaml,修改后如下:

apiVersion: v1
kind: Service
metadata:
  name: httpd-svc
spec:
  type: NodePort
  selector:
    run: httpd
  ports:
  - protocol: TCP
    nodePort: 31688
    port: 8080
    targetPort: 80

(2)执行

kubectl apply -f  Httpd-Service.yaml

(3)查询

kubectl get svc

在这里插入图片描述

curl 127.0.0.1:31688

在这里插入图片描述
通过外网访问http://127.0.0.1:31688,即实现外网访问service

你可能感兴趣的:(k8s)