Portainer is very popular among the docker community for its container management and guess what! now Portainer has extended this management to Kubernetes. Yes, It's True, Portainer 2.0 is coming and it's huge, as it now comes with KUBERNETES Management. In this post, I will walk through portainer 2.0 and some of its features.
We will cover below scenarios:
Installing Portainer on Managed k3s by Civo Cloud
Installing Portainer Agent on GKE
Installing Portainer on Managed k3s
- Create a civo k3s cluster
- Download the Kubeconfig file
- Install Portainer directly on the cluster
**curl -LO [https://raw.githubusercontent.com/portainer/portainer-k8s/master/portainer-nodeport.yaml]( )** kubectl apply -f portainer-nodeport.yaml namespace/portainer created serviceaccount/portainer-sa-clusteradmin created clusterrolebinding.rbac.authorization.k8s.io/portainer-crb-clusteradmin created service/portainer created deployment.apps/portainer created kubectl get svc -n portainer NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE portainer NodePort 192.168.159.221 <none> 9000:30777/TCP,8000:30776/TCP 13s
- Open Portainer UI: <NodeIp>:<Nodeport>(http://184.108.40.206:30777 in this case)
click on kubernetes
The Managed k3s cluster gets imported
Installing Portainer-agent on GKE:
Create a simple plain default GKE cluster
GKE cluster Creation
Connect to the cloud shell in order to Run Portainer Agent
Install Portainer Agent Load Balancer:
**gcloud container clusters get-credentials portainer --zone us-central1-c --project playground-s-11-14726b37** Fetching cluster endpoint and auth data. kubeconfig entry generated for portainer. curl -L https://downloads.portainer.io/portainer-agent-k8s-lb.yaml -o portainer-agent-k8s.yaml; kubectl apply - f portainer-agent-k8s.yaml % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1599 100 1599 0 0 1169 0 0:00:01 0:00:01 --:--:-- 1169 namespace/portainer created serviceaccount/portainer-sa-clusteradmin created clusterrolebinding.rbac.authorization.k8s.io/portainer-crb-clusteradmin created service/portainer-agent created service/portainer-agent-headless created deployment.apps/portainer-agent created kubectl get svc -n portainer NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE portainer-agent LoadBalancer 10.28.7.233 220.127.116.11 9001:31739/TCP 84s portainer-agent-headless ClusterIP None <none> <none> 82s
Create an Endpoint for GKE in the Portainer UI and enter the Endpoint URL as the <Load Balancer IP of Portainer-agent>:9000
With these little steps, you can run multiple agents on Different Kubernetes clusters and manage them(in the above example we were able to install server on Civo cloud and even connect GKE cluster). When I say manage them you can assign them to groups and create users for that. You can deploy the workloads from the Portianer UI
Creating team, users, Groups : With Portainer you can put clusters(endpoints) in different groups and assign user and team access. So create a team, create a user, create a new group, and team/user to that group, and then add cluster/endpoint to the new group. This way different users can assess different sets of clusters base on the need.
Creating Group: In the endpoints section, create a new group.
Now once you have cluster added to a group, you can manage access as well as below:
Finally, Let us deploy a sample application to Civo cluster from Portainer.
Very easily you can define Image, Memory, CPU, NodePort and most of the customization and you can edit it on the fly from the UI.
Accessing application via NodePort
So with Portainer 2.0 you can import and manage multiple clusters and have them added to different groups as per the requirement of the teams or environments. Management is simple and so is the import cluster. Portainer with rich experience in Docker management now has a great release for Kubernetes management as well.
ENJOY PORTAINERING !!