5 篇文章带有标签 “service”

在 Kubernetes 上部署 MySQL

部署单实例 MySQL

创建 PVC(NFS)

mysql-pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pv-claim
spec:
  storageClassName: nfs-client
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi

创建 Deployment mysql-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql:5.

Kubernetes中的Service

Service

为一组功能相同的 Pod 提供固定地址的访问。

集群内部的服务

在集群内部运行多个 Pod 服务。

创建服务

先部署之前的 kubia Deployment (kubia.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kubia
  labels:
    app: kubia
spec:
  selector:
    matchLabels:
      app: kubia
  replicas: 2
  template:
    metadata:
      labels:
        app: kubia
    spec:
      containers:
      - name: kubia
        image: wangjunjian/kubia:latest
        ports:
        - containerPort: 8080

创建 Deployment 对象

$ kubectl apply -f kubia.yaml 
deployment.apps/kubia created
  • 使用 YAML 文件
apiVersion: v1
kind: Service
metadata:
  name: kubia
  labels:
    app: kubia
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: kubia

创建 Service 对象 $ kubectl

Kubernetes中的名字空间

名字空间

名字空间将对象分割成独立的组,为对象名字提供了作用域,名字在不同的名字空间可以是相同的。名字空间对正在运行的对象不提供任何隔离,名字空间之间是否提供网络隔离取决于 Kubernetes 所使用的网络解决方案。

查看当前集群中的所有名字空间

$ kubectl get namespaces 
NAME                   STATUS   AGE
default                Active   379d
kube-node-lease        Active   379d
kube-public            Active   379d
kube-system            Active   379d
kubernetes-dashboard   Active   377d

创建名字空间

  • 使用命令
$ kubectl create namespace kubia
namespace/kubia created
  • 编写 YAML 文件(kubia-namespace.yaml)
apiVersion: v1
kind: Namespace
metadata:
  name: kubia
$ kubectl apply -f kubia-namespace.yaml 
namespace/kubia created

查看新创建的名字空间,ns 是 namespace 的缩写。

$ kubectl get ns kubia
NAME    STATUS   AGE
kubia   Active   35s

在Kubernetes上运行第一个应用

基于Node构建应用

app.js

const http = require('http');
const os = require('os');

console.log("Kubia server starting...");

var handler = function(request, response) {
  console.log("Received request from " + request.connection.remoteAddress);
  response.writeHead(200);
  response.end("You've hit " + os.hostname() + "\n");
};

var www = http.createServer(handler);
www.listen(8080);

Dockerfile

FROM node:16-slim
ADD app.js /app.js
ENTRYPOINT ["node", "app.js"]

构建

docker build -t wangjunjian/kubia .

运行 docker run -d -p 8080:8080 wangjun

开启SSH服务

Ubuntu

  • 安装、卸载SSH服务
sudo apt-get install openssh-server
sudo apt-get remove openssh-server
  • 启动、停止、重启SSH服务
sudo service ssh start
sudo service ssh stop
sudo service ssh restart
  • 查询SSH服务状态
service ssh status
  • 配置文件(更改配置需要重启SSH服务)
sudo vi /etc/ssh/sshd_config
  • 连接SSH服务
ssh username@ip -p 22
  • 设置、移除SSH服务开机自启动
sudo update-rc.d ssh defaults
sudo update-rc.d ssh remove
  • 查看SSH服务设置的自启动
ls /etc/rc*
......
......
ls -l /etc/rc2.d/S02ssh
    lrwxrwxrwx 1 root root 13 12月 25 16:33 /etc/rc2.d/S02ssh -> ../init.d/ssh

参考资料