https://youtu.be/ZD8mvo1lHSk ## linux/container安裝nano ``` apt-get update apt-get install nano ``` ## 使用Host環境的Docker * k3s kubectl apply -f /root/portainer.yaml #執行部屬 * docker network create -d macvlan --subnet=10.0.0.0/24 --gateway=10.0.0.254 -o parent=br0 macvlan #創建macvlan網路 * portainer.yaml ``` --- # Source: portainer/templates/namespace.yaml apiVersion: v1 kind: Namespace metadata: name: portainer --- # Source: portainer/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: name: portainer-sa-clusteradmin namespace: portainer labels: app.kubernetes.io/name: portainer app.kubernetes.io/instance: portainer app.kubernetes.io/version: "ce-latest-ee-2.10.0" --- # Source: portainer/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: portainer labels: app.kubernetes.io/name: portainer app.kubernetes.io/instance: portainer app.kubernetes.io/version: "ce-latest-ee-2.10.0" roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount namespace: portainer name: portainer-sa-clusteradmin --- # Source: portainer/templates/service.yaml apiVersion: v1 kind: Service metadata: name: portainer namespace: portainer labels: io.portainer.kubernetes.application.stack: portainer app.kubernetes.io/name: portainer app.kubernetes.io/instance: portainer app.kubernetes.io/version: "ce-latest-ee-2.10.0" spec: type: NodePort ports: - port: 9000 targetPort: 9000 protocol: TCP name: http nodePort: 10010 - port: 9443 targetPort: 9443 protocol: TCP name: https nodePort: 30779 - port: 30776 targetPort: 30776 protocol: TCP name: edge nodePort: 30776 selector: app.kubernetes.io/name: portainer app.kubernetes.io/instance: portainer --- # Source: portainer/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: portainer namespace: portainer labels: io.portainer.kubernetes.application.stack: portainer app.kubernetes.io/name: portainer app.kubernetes.io/instance: portainer app.kubernetes.io/version: "ce-latest-ee-2.10.0" spec: replicas: 1 strategy: type: "Recreate" selector: matchLabels: app.kubernetes.io/name: portainer app.kubernetes.io/instance: portainer template: metadata: labels: app.kubernetes.io/name: portainer app.kubernetes.io/instance: portainer spec: nodeSelector: {} serviceAccountName: portainer-sa-clusteradmin containers: - name: portainer image: "portainer/portainer-ce:latest" imagePullPolicy: Always args: - '--tunnel-port=30776' volumeMounts: - name: data mountPath: /data - name: docker mountPath: /var/run/docker.sock ports: - name: http containerPort: 9000 protocol: TCP - name: https containerPort: 9443 protocol: TCP - name: tcp-edge containerPort: 8000 protocol: TCP livenessProbe: httpGet: path: / port: 9443 scheme: HTTPS readinessProbe: httpGet: path: / port: 9443 scheme: HTTPS resources: volumes: - name: data hostPath: # directory location on host path: /mnt/ssd480g/portainer # this field is optional type: Directory - name: docker hostPath: path: /var/run/docker.sock ```