Kubernetes containerized uygulamaların dağıtımını,düzenlenmesini, ölçeklendirme ve yönetimini otomatikleştirmek için kullanılan açık kaynak bir sistemidir.
Anlatmaya çalışacağım Kubernets cluster yapısı bir Admin Node iki 2 Container Node şeklinde bir yapı olacak.
1 2 3 4 5 6 7 8 9 10 11 |
+-------------------------+ | [Admin Node] | |kubernetes.omeroner.com | | | +-----------+-------------+ | +-----------------------+ | +----------------------+ | [Node01] |10.0.0.30 | 10.0.0.31| [Node02] | |node01.omeroner.com +----------+————-----—+ node02.omeroner.com | | | | | +-----------------------+ +----------------------+ |
Bu bölümde admin node’u yapılandırılalım başka bir yazıda node’ların yapılandırılmasından bahsedeceğim.
Kubernetes architecture diyagramı aşağıdaki gibidir.
[1] Gerekli paketleri yükleyin
1 |
[root@kubernetes ~]# yum -y install kubernetes etcd flannel |
[2] Kubernetes yapılandırın. Aşağıdaki eklemeleri ve değişiklikleri config dosyasında yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# generate RSA key [root@kubernetes ~]# openssl genrsa -out /etc/kubernetes/service.key 2048 [root@kubernetes ~]# vi /etc/kubernetes/controller-manager # line 7: add KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/etc/kubernetes/service.key" [root@kubernetes ~]# vi /etc/kubernetes/apiserver # line 8: change KUBE_API_ADDRESS="--address=0.0.0.0" # line 17: change to Admin Node's hostname or IP address KUBE_ETCD_SERVERS="--etcd_servers=http://dlp.srv.world:2379" # line 20: IP range for Kubernetes service (change it if need) KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" # line 26: add KUBE_API_ARGS="--service_account_key_file=/etc/kubernetes/service.key" |
1 2 3 4 5 |
[root@kubernetes ~]# vi /etc/etcd/etcd.conf # line 7: uncomment ETCD_LISTEN_PEER_URLS="http://localhost:2380" # line 8: add etcd Host's hostname or IP address ETCD_LISTEN_CLIENT_URLS="http://kubernetes.omeroner.com:2379,http://localhost:2379" |
1 2 3 |
[root@kubernetes ~]# vi /etc/kubernetes/config # line 22: change to Admin Node's hostname or IP address KUBE_MASTER="--master=http://kubernetes.omeroner.com:8080" |
Servisler çalıştıralım ve başlangıça ekleyelim.
1 2 |
[root@kubernetes ~]# systemctl start etcd kube-apiserver kube-controller-manager kube-scheduler [root@kubernetes ~]# systemctl enable etcd kube-apiserver kube-controller-manager kube-scheduler |
[3] Flannel Ağ yapılandırma.
Konteyner Düğümler içinde kullanılacak istediğiniz ağ aralığı belirtin
1 2 3 4 5 6 7 8 9 |
[root@kubernetes ~]# vi flannel-config.json { "Network":"172.16.0.0/16", "SubnetLen":24, "Backend":{ "Type":"vxlan", "VNI":1 } } |
1 2 3 4 5 6 7 8 |
[root@kubernetes ~]# vi /etc/sysconfig/flanneld # line 4: change to Flannel Host's hostname or IP address FLANNEL_ETCD="http://kubernetes.omeroner.com:2379" # line 8: confirm the parameter FLANNEL_ETCD_KEY="/atomic.io/network" [root@kubernetes ~]# etcdctl set atomic.io/network/config < flannel-config.json [root@kubernetes ~]# systemctl start flanneld [root@kubernetes ~]# systemctl enable flanneld |
[4] Eğer tüm yapılandırmalar doğru bir şekilde uygulandı ise aşağıdaki şekilde bir ekran çıktısı görmemiz gerekiyor.
1 2 |
[root@kubernetes ~]# kubectl cluster-info Kubernetes master is running at http://localhost:8080 |
So, what do you think ?